myDC.ru

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

 
3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему

> Бан По Днс, подскажите кто в курсах

Теги
Нет тегов для показа
lezvik
сообщение 11.10.2008, 0:27
Сообщение #1


Начинающий
*

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




мне бы знать как банить на птоке 0360 по днс.
ато юзера забаненные по диапазону айпи, всеравно заходят и портят настроение.
если кто знает как. это делать опишите заранее спасиб.




кароче какойто глюк, я забанил по днс, и перед тем как забанить увидел инфо о хосте! дело было сделано, чел был забанен, но чтото пошло не так, и этот юзер по новой зашел когда я захотел узнать какой же теперь у него хост, то в ответ скрипт пишет "в логах не значитса имя компа юзера! и все этот щегол засрал всех и вся, пришлося вырубить хаб!
как решать эту траблу ааа?
нужен скрипт под api 1
Go to the top of the page
+Quote Post
Nickolya
сообщение 11.10.2008, 0:52
Сообщение #2


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Самой птокой - никак, можно использовать доп. библиотеки для скрипта, но там есть 1 проблема: если за ip нет записи на DNS-сервере, то библиотека виснет на некоторое время, от 1 до 20 секунд. А имя хоста определяется каждый раз при заходе юзера (надо чтобы знать забанен он или нет) и когда ты пытаешься забанить пользователя, так что хаб начнет жутко тормозить и превратится в один сполшной лаг. Чтобы ты попробовал, даже нашел у себя скрипт бана по днс, который я еще давно-давно пытался сделать, апи 1, работает с библиотекой PXLuaSocket.
Прикрепленные файлы
Прикрепленный файл  HostBan.lua ( 6.08 килобайт ) Кол-во скачиваний: 90
 


Спасибо сказали:
Go to the top of the page
+Quote Post
lezvik
сообщение 13.10.2008, 23:01
Сообщение #3


Начинающий
*

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




там знаеш че у тебя с скриптом: там когда даеш команду проверит днс, ищет и находит, но когда начинаеш банить скрипт просто "отлетает".
То есть, в списке скриптов исчезает галочка, и нада по новой ставить галочку чтоп он заюзан был. Но все что можно сделать с этим скриптом это узнать днс не более.
Go to the top of the page
+Quote Post
Nickolya
сообщение 14.10.2008, 0:02
Сообщение #4


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Хм, странно, а какую ошибку выдает скрипт?! И у тебя он не подвешивает хаб?
Go to the top of the page
+Quote Post
lezvik
сообщение 14.10.2008, 13:43
Сообщение #5


Начинающий
*

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




Цитата(Nickolya @ 14.10.2008, 1:02) *
Хм, странно, а какую ошибку выдает скрипт?! И у тебя он не подвешивает хаб?

ни каких ошибок не выдает, просто слетает и все. хаб не подвешивает.
Go to the top of the page
+Quote Post
Nickolya
сообщение 14.10.2008, 17:25
Сообщение #6


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




А в окне ошибок скриптов есть ошибки? У меня есть, не знаю почему такой косяк, видимо как-то сменил функцию на новую:
Цитата
Синтакс D:\0.3.6.0\scripts\HostBan.lua:87: attempt to call global 'SaveFile' (a nil value)
Замени в функции OnExit() SaveFile на SaveToFile. После этого скрипт работает как надо, у меня по крайней мере...
Go to the top of the page
+Quote Post
lezvik
сообщение 17.10.2008, 16:31
Сообщение #7


Начинающий
*

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




спасибо, все работает, забанил адного вредителя, который месяц мозг еп. ыыыыыыыы.
Go to the top of the page
+Quote Post
D'aspid
сообщение 17.10.2008, 21:18
Сообщение #8


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 280
Регистрация: 4.6.2008
Из: Россия
Пользователь №: 10
Спасибо сказали: 42 раза




На API 2 можете этот скрипт перевести?
Go to the top of the page
+Quote Post
Nickolya
сообщение 17.10.2008, 22:30
Сообщение #9


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Можем, я вот попробовал, пробуй что вышло.
Прикрепленные файлы
Прикрепленный файл  HostBan___API2___.lua ( 6.93 килобайт ) Кол-во скачиваний: 99
 


Спасибо сказали:
Go to the top of the page
+Quote Post
D'aspid
сообщение 25.10.2008, 15:23
Сообщение #10


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 280
Регистрация: 4.6.2008
Из: Россия
Пользователь №: 10
Спасибо сказали: 42 раза




Цитата
[18:20:40] <[Bot]Leviathan> *** Пользователь Infernus-pro [192.168.*.*] с хостом *** забанен!

Вот это выдает, но не банит, ничего вообще не происходит.
Go to the top of the page
+Quote Post
Undertaker
сообщение 29.10.2008, 0:14
Сообщение #11


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


Группа: Пользователи
Сообщений: 8
Регистрация: 6.10.2008
Из: Тула
Пользователь №: 739
Спасибо сказали: 4 раза




у меня такая же проблема как и у Infernus-pro , бот абсолютно тоже выдаёт. Как же быть ?
Go to the top of the page
+Quote Post
Delion
сообщение 30.10.2008, 11:57
Сообщение #12


Постоялец
******

Группа: Пользователи
Сообщений: 462
Регистрация: 20.10.2008
Пользователь №: 843
Спасибо сказали: 15 раз




Не понял. Что именно узнаёт скрипт?
Go to the top of the page
+Quote Post
Sephiroth_Lukaw
сообщение 30.10.2008, 12:30
Сообщение #13


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 307
Регистрация: 11.7.2008
Пользователь №: 173
Спасибо сказали: 31 раз




To: Delion
Цитата
socket.dns.tohostname(address)

Converts from IP address to host name.

Address can be an IP address or host name.

The function returns a string with the canonic host name of the given address, followed by a table with all information returned by the resolver. In case of error, the function returns nil followed by an error message.
Go to the top of the page
+Quote Post
Delion
сообщение 30.10.2008, 23:12
Сообщение #14


Постоялец
******

Группа: Пользователи
Сообщений: 462
Регистрация: 20.10.2008
Пользователь №: 843
Спасибо сказали: 15 раз




Честно говоря,мало что понял.
Короче,можно ли таким макаром банить хабовладельцев? Типа вбить хост хаба - а на выходе получать вечно забаненного хостера?
Go to the top of the page
+Quote Post
district
сообщение 2.11.2008, 9:15
Сообщение #15


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Спасибо Nickolya за скрипт (под старый API имею в виду), вроде, в первом приближении, работает.
Есть пара вопросов.

Верный ли список необходимых файлов для работы скрипта у меня в папке Libs? Или напротив, может, что лишнее тут?
Цитата
socket.lua
PXSocket.tds
PXSocket.dll
PXMime.tds
PXMime.dll
mime.lua
Itn12.lua


И еще вопрос. Насколько я понял, скрипт пробивает имя хоста при каждом входе юзера, и тормозить и вешаться он должен, когда это имя установить не удается.
Я попробовал отключить одного юзера, у которого
Цитата
Имя компьютера пользователя с IP **.**.**.** не установлено!
и посмотреть, что будет при реконнекте. Никаких особых тормозов отмечено не было.
Все ли тут верно?
Ptoka 0.3.6.0 Lua5.1.2

А вообще, в идеале, неплохо было бы подчинить этот скрипт двум другим, которые банят за порнуху (по ТТН) и за мат в чате :-)

Да, и еще вопрос есть злободневный. Сейчас основной режим банов - fullban :
Цитата
<Ban>
<Type>0</Type>
<IP>**.***.**.***</IP>
<Nick>Ник</Nick>
<Reason>Причина</Reason>
<By>Бот</By>
<NickBan>1</NickBan>
<IpBan>1</IpBan>
<FullIpBan>1</FullIpBan>
<Expire>0</Expire>
</Ban>

Чем тут FullIpBan отличается от просто IpBan? До сих пор не могу найти внятного ответа.
Собственно, поэтому и заинтересовался выложенным скриптом, что на днях случился прецедент: правильный юзер с динамическим IP попробовал зайти, но наткнулся на бан по айпи, выписанный другому, неправильному юзеру.

Спасибо.

Дополнено:
Погоняв скрипт на разных режимах, немного его подредактировал.
Убрал загадочную строчку "ValidateNickArrival" и приписал Disconnect. Какой же бан без дисконнекта? Ну и еще кое-что по мелочи, названия опций, блокировка пролезания команды в главный чат, везде SaveToFile вместо SaveFile.
И тут встала другая проблема. Юзеры с оговоренными в начале скрипта профилями все равно будут иметь доступ на хаб, но дисконнект и внесение в tbl-файл имени хоста произойдет, если дрогнет рука и под бан попадет не тот, кто надо.
Поэтому хорошо бы поставить наличие профиля юзера в списке неприкасаемых критерием не только входа на хаб, но и не-попадания под бан по ошибке.
Опыта скриптописания у меня нет, как это реализовать при существующей архитектуре скрипта пока что не знаю.
Может быть, более опытные товарищи подскажут?

Креплю свою редакцию, на всякий случай.

Сообщение отредактировал district - 3.11.2008, 21:51
Прикрепленные файлы
Прикрепленный файл  HostBan.lua ( 6.61 килобайт ) Кол-во скачиваний: 31
 
Go to the top of the page
+Quote Post
Nickolya
сообщение 2.11.2008, 20:21
Сообщение #16


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Про то что нет тормозов рад, пользуйте. Про файлы в папке не парься, если есть лишние, то тебе они не особо мешают, всё это входит в состав библиотеки, главное чтобы работало. ФулБан - вариант бана после которого забаненый юзер с привилегией захода под баном не сможет зайти на хаб, т.е. привилегия не работает. Про код ничего не знаю, у меня всё работает на ура, забаненый юзер не может зайти, вся логика скрипта работает, команды в чат не идут и т.д., смотрите сами...

Реализация проерки на стойкость к бану выглядит так:
Код
        elseif sCmd == "nickhostban" then
            local _,_, sNick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
            local tNeedUser = GetItemByName(sNick)
            if tNeedUser then
                local sHost = tohostname(tNeedUser.sIP)
                if sHost then
                    if tHostBans[sHost] then
                        curUser:SendData(sBot, "*** Хост "..sHost.." уже забанен!")
                    else
                        if tCanBeBanned[tNeedUser.iProfile] == 1 then
                            tHostBans[sHost] = 1
                            SaveToFile(sBansFile, tHostBans, "tHostBans")
                            tNeedUser:Disconnect()
                            curUser:SendData(sBot, "*** Пользователь "..sNick.." ["..tNeedUser.sIP.."] с хостом "..sHost.." забанен!")
                        else
                            curUser:SendData(sBot, "*** Ты не можешь забанить пользователя "..sNick.." ["..tNeedUser.sIP.."] с хостом "..sHost.."!")
                        end
                    end
                else
                    curUser:SendData(sBot, "*** Имя хоста пользователя "..sNick.." ["..tNeedUser.sIP.."] не установлено, бан по хосту не может быть применен!")
                end
            else
                curUser:SendData(sBot, "*** Пользователь "..sNick.." отсутствует на хабе! Из-за этого невозможно узнать имя компьютера этого пользователя!")
            end
            return 1
Go to the top of the page
+Quote Post
district
сообщение 3.11.2008, 8:58
Сообщение #17


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




2 Nickolya
спасибо за разъяснения начет фуллбана, будем работать дальше))



Ну вот, удалось внести кое-какие дополнения. Увлек меня этот скрипт, каюсь)
Что сделано:
1. Добавлено сообщение "Вы забыли ввести ник юзера/имя хоста" в том случае, если команда вводится из строки главного чата;
2.Добавлено ограничение по профилям (CanBan) к каждой команде и сообщение "Извините, у вас нет права использовать эту команду"
3.Формат сообщения "Этого юзера нельзя забанить" изменен на такой: "Бан не может быть применен, пользователь имеет профиль <Vip, op и тд> !
4.Мелкие косметические дополнения:
а)Сообщение для забаненных "Вы были забанены на этом хабе..." плюс вызываемое из Птоки
сообщение GetBanMsgAddMsg()
б)Бан обычным способом, если извлечь имя хоста не удается
в)Автоматическое удаление имени забаненного юзера из списка зарегистрированных

Есть еще две задачи, которые хотелось бы решить. Попробую сам, конечно, но, возможно, без помощи автора скрипта обойтись не удастся.

1.Ввод, сохранение и показ при попытке входа забаненному причины бана
2.Мелкий дефект (у всех так или только у меня?) - смещение таблицы забаненных хостов (см.картинку)



И в заключение один вопрос, на будущее. Можно ли как-нибудь сделать так, чтобы скрипт, который стоит выше в списке, получал и отрабатывал команду от скрипта, расположенного ниже? Звучит может быть дико, но все-таки?
Прикрепленные файлы
Прикрепленный файл  HostBan_mod.lua ( 10 килобайт ) Кол-во скачиваний: 43
 
Go to the top of the page
+Quote Post
Nickolya
сообщение 3.11.2008, 10:07
Сообщение #18


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Смещение идет, может и мой косяк, уже не помню. Правится так: в коде команды "hostbanlist"
Код
sNames = sNames.."\t• "..sHost.."\r\n\t"

убираем \t в самом конце и все дела. big_smile.gif

Про причину бана: это делается не очень трудно, в исхдном виде таблица имеет вид tHostBans["имя_хоста"] = 1, тут если мы заменим единицу причиной бана, получится то что тебе надо, вывод причины будет тоже простой:
Код
sMsg = "Причина бана: "..tHostBans[sHost]

Но везде где стоит условие if tHostBans[sHost] == 1 надо заменить на просто if tHostBans[sHost]
Попробуй пока сам, спрашивай если что не так...
А вообще, скрипт планировался как тихий бан, чтобы юзер не знал что его поразило, никаких сообщений быть не должно, но права делать под себя у вас никто не отменял, наоборот, очень хорошо когда скрипт выкладывают под своими редакциями.
Go to the top of the page
+Quote Post
district
сообщение 3.11.2008, 20:26
Сообщение #19


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Цитата
скрипт планировался как тихий бан


это понятно, вид бана как раз указывать совсем ни к чему))
однако, даже если скрипт стоит первым в списке, сообщение "Этот хаб работает под управлением PtokaX ... и тд" все равно успевает проскочить при попытке коннекта. По крайней мере, у меня так.(Может, есть способ отключить это сообщение?)

Все чего пока добился - немного изменена идеология оповещений: прикладные оповещения оставлены curUser'у, а оповещения о бане по хосту, о никхостбане и о анбане переделаны на "SendToOps".
Например: Пользователь <ник> [**.**.**.**] с хостом ****-********.**.ru забанен! Забанил: <профиль> <ник>.
Ну и со сдвигом в таблице разобрался.

А с записью доп. данных пока ступор. Записывать-то нужно еще и ник, если уж причину бана сохраняем.:-)))
К тому же, вылезла еще одна, более насущная проблема. Скрипт иногда приходится отключать, по крайней мере на время отладки новых фич, и пока он выключен, на хаб пробираются забаненные вредители.
Нужна дополнительная функция проверки юзеров на хабе на забаненность, вызываемая при старте скрипта. Подобным образом действует скрипт "Один айпи- один клиент" (прикрепляю на всякий случай), сразу же вышвыривает с хаба. Но у меня по образу и подобию соорудить функцию с наскока не получилось. Нужен совет.
Прикрепленные файлы
Прикрепленный файл  OneIp_OneClient.lua ( 703 байт ) Кол-во скачиваний: 24
 
Go to the top of the page
+Quote Post
Setuper
сообщение 3.11.2008, 21:21
Сообщение #20


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Для того, чтобы не появлялось сообщение "Этот хаб работает...", нужно все функции бана писать в функции ValidateNickArrival, однако, хоть эта функция и рассчитана на то, что все клиенты её поддерживают (в противном случае нет возможности проверить ник до коннекта), но на практике некоторые клиенты игнорируют команды этой функции, поэтому предлагается делать дублирование в функции UserConnected, что с точки зрения оптимизации не очень хорошо.

По поводу отключения скрипта хочу заметить, что хороший админ всегда тестирует скрипты на экспериментальном хабе, а потом уже устанавливает их на основной!
Go to the top of the page
+Quote Post

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

 



RSS Сейчас: 27.11.2024, 3:13