myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Access IPRanges, Доступ на хаб только для диапазонов

Теги
Нет тегов для показа
Saymon21
сообщение 5.6.2010, 12:25
Сообщение #1


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Название: Access IPRanges
Автор: Saymon
Помощь в написании: Nickolya
Версия API: API2
Описание: Скрипт проверяет айпи адрес юзера и если тот не соответствует диапазонам которые указаны в таблице, отключает с хаба.
Прикрепленные файлы
Прикрепленный файл  Access_IPRanges_v0.1_beta_for_PtokaX_API2.lua ( 2.91 килобайт ) Кол-во скачиваний: 147
 


Спасибо сказали:
Go to the top of the page
+Quote Post
xoma11
сообщение 22.6.2011, 14:06
Сообщение #2


Абсолютный новичок


Группа: Пользователи
Сообщений: 4
Регистрация: 22.6.2011
Пользователь №: 9 382
Спасибо сказали: 0 раз




PtokaX Версия 0.4.1.1
Установил, указал диапазон
Код
--[[:::::::::::: (c) 2010 by Saymon ::::::::::::::::::::::::
Название: Access IPRanges v0.1 beta for PtokaX
Версия API: API2
Автор: Saymon
Описание: Скрипт проверяет айпи адрес юзера и если тот не соответствует диапазонам которые указаны в таблице, отключает с хаба.
Скрипт написан специально администратором Saymon для EW DCMagnet's HuB (PtokaX 0.4.1.2).
Помог с написанием под PtokaX - Nickolya.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::]]

--[::::::::::: Настройки скрипта. :::::::::::::::::::::::::::]
Provider = "SakhalinTTK"                         -- Название нашего интернет провайдера.
ProviderSite = "http://sakhttk.ru"           -- Вэб сайт нашего интернет провайдера.
AdminMail = "**@mail.ru"                -- E-Mail администратора хаба.              

tLocal = { --Таблица с диапазонами нашего провайдера
    {"188.168.64.0","188.168.67.255",},      
    {"188.168.204.0","188.168.207.255",},
    {"188.168.168.0","188.168.175.255",},      
}
--[::::::::::::: Конец настроек. Далее основной код скрипта. Если нет знаний Lua, то лучше ничего не трогать!! ::]
Version = "0.1 beta"
function OnStartup()
    for i in ipairs(tLocal) do
        tLocal[i][1] = tLocal[i][1]:iptonumber()
        tLocal[i][2] = tLocal[i][2]:iptonumber()
    end
end

function string.iptonumber(ip)
    local i1, i2, i3, i4 = ip:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$")
    if i1 then
        return i1*16777216+i2*65536+i3*256+i4
    end
end

function GetNickListArrival(tUser,sData)
    if not CheckInDiap(tUser) then
          Core.SendToOpChat("Access IPRanges "..Version.." - Была пресечена попытка входа на хаб для юзера ["..tUser.sNick.." - "..tUser.sIP.."]")
          Core.SendToUser(tUser,"<"..SetMan.GetString(21)..">\t\t"..SetMan.GetString(0).."\r\n\n"..
              "\tIP Адрес: ["..tUser.sIP.." / "..tostring(IP2Country.GetCountryName(tUser)).."] непрошёл проверку с таблицей диапазонов\r\n"..
              "\tДля IP адресов интернет провайдера "..Provider.." "..ProviderSite.." .\r\n\t"..string.rep("•", 70).."\n"..
               "\tЕсли всё же ваш провайдер "..Provider..", то свяжитесь пожалуйста с администратором хаба.\n\tСделать это можно написав на E-Mail: "..AdminMail.."\n\tИли на форуме проекта - "..ProjectForum.." .\n\t"..string.rep("•", 70).."\n\tPowered by Access IPRanges v "..Version..". © 2009-2010 by Saymon.")
          Core.Disconnect(tUser)
    end
    Core.SendToUser(tUser,"<"..SetMan.GetString(21).."> Проверка IP адреса ["..tUser.sIP.."] на пренадлежность к интернет провайдеру "..Provider.." пройдена успешно. Доступ разрешён.")
end
RegConnected = UserConnected
OpConnected = UserConnected

function CheckInDiap(tUser)
    local ip = tUser.sIP:iptonumber()
    for _,range in ipairs(tLocal) do
        if range[1] <= ip and ip <= range[2] then
            return true
        end
    end
    return false
end

в чате пишет Проверка IP адреса [188.168.204.**] на пренадлежность к интернет провайдеру SakhalinTTK пройдена успешно. Доступ разрешён.
а с другого провайдера пишет: [22:04:44] *** Connecting to 188.168.204.*...
[22:04:44] *** Connected
[22:04:45] <Sakhalin> Этот хаб работает под управлением PtokaX DC Hub 0.4.1.2 (Время работы: 0 дней, 2 часов, 3 минут / Юзеры: 3)
[22:04:45] <Sakhalin> Welcome to SakhalinTTK

Go to the top of the page
+Quote Post
mariner
сообщение 22.6.2011, 15:17
Сообщение #3


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




видимо, ты делаешь что-то не так. У нас все работает как надо.
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.6.2011, 15:33
Сообщение #4


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Указывать нужно только те деапазоны, которые нужно пропускать. Проверь, верны ли они.
Go to the top of the page
+Quote Post
Ksan
сообщение 22.6.2011, 15:51
Сообщение #5


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Мне кажется, надо немножко изменить конструкцию скрипта в области
Код
function GetNickListArrival(tUser,sData)
    if not .... then
        ....
    end
    Core.SendToUser....
end

То есть, добавить else:
Код
function GetNickListArrival(tUser,sData)
    if not .... then
        ....
    else
        Core.SendToUser....
    end
end

Я не знаю, повлияет ли это на результат, но так корректнее будет.
И, наверно, не стоило подменять таблицу с диапазонами IP на одноимённую таблицу с числовыми значениями диапазонов IP, так как при одновременном заходе 2-х и более юзеров возможен пропуск второго и далее юзера без проверки на вхождение в провайдерский список по причине отсутствия первичного списка диапазонов, так как он уже подменён на числовые значения.
Лучше создать заранее таблицу tLocalNum = {} и туда сливать полученные числовые значения.
Go to the top of the page
+Quote Post
Alexey
сообщение 23.6.2011, 16:38
Сообщение #6


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Цитата(Ksan @ 22.6.2011, 16:51) *
И, наверно, не стоило подменять таблицу с диапазонами IP на одноимённую таблицу с числовыми значениями диапазонов IP,

Какая подмена? О чём ты? Таблица одна и та-же. Меняется лишь представление элементов.

Цитата(Ksan @ 22.6.2011, 16:51) *
так как при одновременном заходе 2-х и более юзеров возможен пропуск второго и далее юзера без проверки на вхождение в провайдерский список

Нет, невозможен.

Go to the top of the page
+Quote Post
Ksan
сообщение 23.6.2011, 17:52
Сообщение #7


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Цитата
Какая подмена? О чём ты? Таблица одна и та-же. Меняется лишь представление элементов.

И я про то же самое:
Цитата
на одноимённую таблицу

Да и фиг с ними, нет так нет.
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsAccess IP Ranges
Eximius | Доступ на хаб только для диапазонов
0 Saymon21 6 044 7.7.2010, 12:27 Посл. сообщение: Saymon21
No New Posts От: Access IPRanges
От темы с ID: 3520
0 -=FugeN=- 2 4 374 6.6.2010, 4:12 Посл. сообщение: -=FugeN=- 2
No New Posts От: Access IPRanges
От темы с ID: 3521
2 Артём 5 980 5.6.2010, 12:45 Посл. сообщение: Артём
No New Posts Topic has attachmentsAccess IPRanges
Доступ на хаб только для диапазонов
0 Saymon21 5 252 5.6.2010, 12:20 Посл. сообщение: Saymon21

 



RSS Сейчас: 27.11.2024, 4:37