Скрипт Доступа По Списку Ip - Срочно, Не Просто Так! |
Здравствуйте, гость ( Вход | Регистрация )
Скрипт Доступа По Списку Ip - Срочно, Не Просто Так! |
18.3.2009, 14:01
Сообщение
#1
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
Блокировался хаб при помощи средств провайдера, но сегодня нежданчик образовался:
Соответственно нужна блокировка по списку IP PtokaX 0.4.1.1 Смотрите - есть возможность получать список в таком вот виде Минимум необходимого: - чтоб не впускало всех, кто не в этом списке, с выводом сообщения, почему. - периодическая проверка (устанавливаемо, в часах) на принадлежность к списку тех, кто уже есть в хабе и кик с формулировкой (мол выпали из зоны) Желательно, но то уже такое, чтоб автоматом получало список само - но это уже некритично, лапками буду или программер наш что-то реализует (Луа, к сожалению, он не знает, а я вообще продвинутый юзверь))) Буду весьма благодарен - могу предложить бартер, а именно рекламу у нас на месяцок - тут вот Либо же wmz - достаточно символически правда, сами на мели... |
|
|
18.3.2009, 21:34
Сообщение
#2
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ну вот в основу скрипта лёг скрипт башорга(чтоб не парится, спасибо Nickolya).
Скрипт при старте и раз в установленное время берёт ипы из инета, делает таблицку и на её основе решает пускать юзера или нет. Мне кажется скрипт будет подтормаживать. Знающие люди вносите свои предложения))) PS: для работы скрипта нужна библиотека http://mydc.ru/ipb.html?act=attach&type=post&id=74 класть в папку libs в папке scripts
Прикрепленные файлы
|
|
|
18.3.2009, 22:07
Сообщение
#3
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
ну вот в основу скрипта лёг скрипт башорга(чтоб не парится, спасибо Nickolya). Скрипт при старте и раз в установленное время берёт ипы из инета, делает таблицку и на её основе решает пускать юзера или нет. Мне кажется скрипт будет подтормаживать. Знающие люди вносите свои предложения))) Спасибо - сейчас буду пытаться разобраться)) Если заработает - гуд, если нет - приду ныть снова. Чем могу отблагодарить? (В личку, если что)) апд Библиотеку распаковал, куда сказано \0.4.1.1\scripts\libs - не папкой, а скопом типа, скрипт кинул как положено - и он работает, но лочит всех, без исключения - хотя список получен((( |
|
|
18.3.2009, 22:10
Сообщение
#4
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
лочит в смысле пускает?
|
|
|
18.3.2009, 22:12
Сообщение
#5
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
|
|
|
18.3.2009, 22:19
Сообщение
#6
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
добавь в скрипт
Код function OnExit() WriteTable(tExceptionsIP, "tExceptionsIP", sExceptionsIP) end и посмотри что у тебя будет в таблице с ипами я прописал диапазон для своего ип ручками и аккуратно зашёл))) |
|
|
18.3.2009, 22:36
Сообщение
#7
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
добавь в скрипт Код function OnExit() WriteTable(tExceptionsIP, "tExceptionsIP", sExceptionsIP) end и посмотри что у тебя будет в таблице с ипами я прописал диапазон для своего ип ручками и аккуратно зашёл))) Добавил - ничего не поменялось - к примеру мой ип 92.244.112.27 - в таблице он видимо тут: [242] = { [1] = "92.244.96.0", [2] = "92.244.96.19", Если это диапазон - может с перла некорректно перевело? В списке с колокола он так смотрится 92.244.96.0/19 по идее диапазон 92.244.96.0 - 92.244.99.255 Во всяком случае не пускает... ХЗ у меня уже мысли - открыть его шоле, да шумновато станет... |
|
|
18.3.2009, 22:39
Сообщение
#8
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ну если ты не видишь то это точно не тот диапазон!!!
в него входят: Цитата 92.244.96.0 92.244.96.1 92.244.96.2 92.244.96.3 92.244.96.4 92.244.96.5 92.244.96.6 92.244.96.7 92.244.96.8 92.244.96.9 92.244.96.10 92.244.96.11 92.244.96.12 92.244.96.13 92.244.96.14 92.244.96.15 92.244.96.16 92.244.96.17 92.244.96.18 92.244.96.19 твоего адреса нет в списке!!! |
|
|
18.3.2009, 22:42
Сообщение
#9
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
ну если ты не видишь то это точно не тот диапазон!!! твоего адреса нет в списке!!! Скорее на колоколе своя система, автоматически на перле должен обрабатываться, или переводить в понятную птоке систему корректно, появится программер наш - 100% обзовет обоих идиотами (меня так точно))) |
|
|
18.3.2009, 22:45
Сообщение
#10
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Это ты про что???? айпи есть айпи!!!!
|
|
|
18.3.2009, 22:51
Сообщение
#11
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
Это ты про что???? айпи есть айпи!!!! Та понятно - наши там тоже с переформатом баловались - нифига не вышло, корявые диапазоны даёт (может на колоколе слагали) - они такой пример скрипта дают Ладно - утро вечера мудреннее, припрется наш гений машинных языков, дам ему весь материал - он скорее разберется, тем более с колоколовской базой кже работал. Как только - так отпишусь |
|
|
19.3.2009, 0:14
Сообщение
#12
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 18.3.2009 Пользователь №: 2 647 Спасибо сказали: 0 раз |
Если можно, можете немножко проверку переписать в том скрипте, а то мне сложно будет учить еще 1 язык програмирования, я напишу по русски как хотелось бы:
Взять IP юзверя к примеру: 27.127.54.22 (абсолютно от болды, любое совпадение случайно), и конвертировать по принципу: 27 = 11011; 127 = 1111111; 54 = 110110; 22 = 10110; 27.127.54.22 = 0001 1011 . 0111 1111 . 0011 0110 . 0001 0110 0001 1011 0111 1111 0011 0110 0001 0110 = 461 321 750; и взять с таблицы значение диапазона "от" и "до" и сравнить по принципу Код если IP < "до" И IP > "от" то пустить в ином случае послать Таблица генерируется тем же принципом что и конкретный IP, т.е десятичными айпишниками. Генерацию таблицы можно не писать, я ее сам напишу в том же php. З.Ы. Надо отредактить Ip2Num(sIP) что бы возвращала число и в строке: Код if (Ip2Num(tUser.sIP) >= Ip2Num(v[1])) and (Ip2Num(tUser.sIP) <= Ip2Num(v[2])) then сделать банальную числовую проверку. |
|
|
19.3.2009, 1:53
Сообщение
#13
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
А она (функция Ip2Num) по твоему не число возвращает? Она делает именно то, что ты описал, но минуя бессмысленный этап перевода в бинарный вид, приводя сразу строковое значение ip адреса в число.
Эту функцию не надо корректировать. Неужели так сложно догадаться как это сделать. Для этого не надо знать язык lua. Код if (Ip2Num(tUser.sIP) >= v[1]) and (Ip2Num(tUser.sIP) <= v[2]) then В файле диапазонов, соответственно, пишешь не строковые значения ip адресов, а их числовые представления. |
|
|
20.3.2009, 2:50
Сообщение
#14
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 18.3.2009 Пользователь №: 2 647 Спасибо сказали: 0 раз |
Прикольный алгоритм, ех век живи век учись. Ну вроде бы понятно. Дальше проблему думаю сам решу.
Таблица генерится таким вот образом: Код tExceptionsIP = { [1] = { [1] = "1041235968", [2] = "1041244160", }, [2] = { [1] = "1044398080", [2] = "1044414464", }, [3] = { [1] = "1044946944", [2] = "1044955136", }, Проверочная строка: Код for i,v in ipairs(tExceptionsIP) do if (Ip2Num(tUser.sIP) >= v[1]) and (Ip2Num(tUser.sIP) <= v[2]) then Что мне надо мне написать что бы оно не писало вот это: Цитата [20:46] Синтаксис ...\scripts\ExceptionsIPs.lua:19: attempt to compare string with number на выше указанную строку. Я логично понимаю что не совместимость типов, но какое там слово/ф-ция что бы сказать скрипту что это число. |
|
|
20.3.2009, 2:54
Сообщение
#15
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код tExceptionsIP = { Чуешь разницу?
[1] = { [1] = 1041235968, [2] = 1041244160, }, [2] = { [1] = 1044398080, [2] = 1044414464, }, [3] = { [1] = 1044946944, [2] = 1044955136, }, |
|
|
20.3.2009, 3:07
Сообщение
#16
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 18.3.2009 Пользователь №: 2 647 Спасибо сказали: 0 раз |
ыыы , ступил, капец.
Просто везде по разному, я думал оно конвертнет строку в число (если она число), как в принципе все скриптовые без типов. |
|
|
20.3.2009, 3:19
Сообщение
#17
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
преобразование типов происходит, когда применяешь какую либо операцию, например конкатенацию или умножение, а в данном случае происходит сравнение, и сравнение должно производиться исключительно между числами, но никак не между числом и строкой.
Хотя можно написать так: Код if (Ip2Num(tUser.sIP) >= tonumber(v[1])) and (Ip2Num(tUser.sIP) <= tonumber(v[2])) then тогда строки будут преобразовываться в числа и сравниваться уже будут числа
|
|
|
20.3.2009, 3:48
Сообщение
#18
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 18.3.2009 Пользователь №: 2 647 Спасибо сказали: 0 раз |
|
|
|
20.3.2009, 4:16
Сообщение
#19
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 24.2.2009 Из: Киев Пользователь №: 2 341 Спасибо сказали: 0 раз |
Ага, с грехом пополам, общими усилиями))
Дайте плз банер свой 468*60 (картинку либо код) - ну или текст рекламного объявления - цепану у нас новостью на несколько дней - потом в раздел рекламы уползет (хотя та тема была чуть ли не лучшей рекламой)) Ну или другие варианты - в любом случае, большое спасибо |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 3:33 |