|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]()
Сообщение
#1
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Название: Access IPRanges
Автор: Saymon Помощь в написании: Nickolya Версия API: API2 Описание: Скрипт проверяет айпи адрес юзера и если тот не соответствует диапазонам которые указаны в таблице, отключает с хаба.
Прикрепленные файлы
|
|
|
![]()
Сообщение
#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 |
|
|
![]()
Сообщение
#3
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
видимо, ты делаешь что-то не так. У нас все работает как надо.
|
|
|
![]()
Сообщение
#4
|
|
![]() Site Reliability Engineer ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз ![]() |
Указывать нужно только те деапазоны, которые нужно пропускать. Проверь, верны ли они.
|
|
|
![]()
Сообщение
#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 = {} и туда сливать полученные числовые значения. |
|
|
![]()
Сообщение
#6
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
И, наверно, не стоило подменять таблицу с диапазонами IP на одноимённую таблицу с числовыми значениями диапазонов IP, Какая подмена? О чём ты? Таблица одна и та-же. Меняется лишь представление элементов. так как при одновременном заходе 2-х и более юзеров возможен пропуск второго и далее юзера без проверки на вхождение в провайдерский список Нет, невозможен. |
|
|
![]()
Сообщение
#7
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз ![]() |
Цитата Какая подмена? О чём ты? Таблица одна и та-же. Меняется лишь представление элементов. И я про то же самое: Цитата на одноимённую таблицу Да и фиг с ними, нет так нет. |
|
|
![]() ![]() |
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
![]() |
![]() Eximius | Доступ на хаб только для диапазонов |
0 | Saymon21 | 5 953 | 7.7.2010, 12:27 Посл. сообщение: Saymon21 |
![]() |
От: Access IPRanges От темы с ID: 3520 |
0 | -=FugeN=- 2 | 4 292 | 6.6.2010, 4:12 Посл. сообщение: -=FugeN=- 2 |
![]() |
От: Access IPRanges От темы с ID: 3521 |
2 | Артём | 5 882 | 5.6.2010, 12:45 Посл. сообщение: Артём |
![]() |
![]() Доступ на хаб только для диапазонов |
0 | Saymon21 | 5 190 | 5.6.2010, 12:20 Посл. сообщение: Saymon21 |
![]() |
Сейчас: 8.9.2024, 2:41 |