|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]() ![]()
Сообщение
#1
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 9.10.2011 Из: Владимирская обл. Пользователь №: 9 819 Спасибо сказали: 3 раза ![]() |
alex82 спасибо за скрипт!
Данный скрипт может отлавливать и по TTH файла(ов). Когда юзер ищет файл по TTH, и при совпадении корней с запрещенными "масками", так же блокирует юзера. В код хеша TTH не входят цифры: 0,1,8,9. Так же не входят кирилические буквы - буквы русского алфавита. Не входят в хеш символы и пробелы между двух соседних букв. Вывод: Нецелесообразно использовать маски только из латинских букв с включением и без цифр: 2,3,4,5,6 и 7. Необходим либо пробел в искомом словосочетании, либо символ, либо цифры 0,1,8 и 9. Кроме того с рускоязычными масками множество исключений, которые придется долго составлять. Отдельное спасибо за скрипт под RusHub Saymon21! Может быть как то решить этот не достаток, сделав обход хеш поиска? Справка: Хеш состоит из 39 букв латинского алфавита с использованием цифр 2,3,4,5,6,7. Код хеша всегда оканчивается следующими латинскими буквами: A,I,Q,Y. Примеры: ZLAXUBMRSBKSYAN72Z736CFFXMBXKYNF3TKT5UA, ZM7QDTLTYPW2VS7JUTZFMEUSLWSD7EGDOFM7AVI, ZOLCUNH3YRUJQGFY2VWQJVWYVLWBXZWKYE2YGKQ, ZQQUBNDH5EXY2M7DXGMJ7JPDIZHIAZAJ3XHS5QY. |
|
|
![]()
Сообщение
#2
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
GULAM33
Скрипт НЕ может отлавливать TTH, поскльку этот тип поиска скриптом игнорируется. Код if from and stype ~= "9" and (CheckString(sstring) or (bBlockOther and tBlock[UID.sNick])) then
|
|
|
![]()
Сообщение
#3
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 9.10.2011 Из: Владимирская обл. Пользователь №: 9 819 Спасибо сказали: 3 раза ![]() |
alex82 ранняя версия данного скрипта, предоставленная Вами, по крайней мере отлавливала, но так как я понял в данном скрипте имеется ограничение, и это ограничение можно менять по своему. И если это ограничение будет равно 39 или выше, то скрипт сможет отлавливать и по хешу. Или я не так понял?
|
|
|
![]()
Сообщение
#4
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
alex82 ранняя версия данного скрипта, Не было никаких ранних версий, версия скрипта пока единственная. предоставленная Вами, по крайней мере отлавливала, Не отлавливала. но так как я понял в данном скрипте имеется ограничение, и это ограничение можно менять по своему. И если это ограничение будет равно 39 или выше, то скрипт сможет отлавливать и по хешу. Или я не так понял? Прочитай пост №17 ещё пару раз. |
|
|
![]() ![]()
Сообщение
#5
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 41 Регистрация: 9.10.2011 Из: Владимирская обл. Пользователь №: 9 819 Спасибо сказали: 3 раза ![]() |
Не путай меня вот код скрипта bad_search:
CODE sBot = ""
BanTime = 10 -- время бана в минутах sReason = "Запрещенный поисковой запрос" -- Причина бана -- Кого нужно проверять (1 - да, 0 - нет) -- CanDo = { [-1] = 1, -- Незарегестрированный [0] = 0, -- Мастер [1] = 0, -- ОП [2] = 0, -- Вип [3] = 1, -- Зарегестрированный } --------------------------------------------------------------------------------------------- -- ver 1.0 если в таблицу вносятся фразы, то вместо пробела нужно ставить знак $ --------------------------------------------------------------------------------------------- -- Запрещаем adverTable = { } -- Исключения safeTable = { } function SearchArrival(tUser,sData) if CanDo[tUser.iProfile] == 0 then return false end local s,e,msg = string.find(sData,"$Search %S+%s%S+?%S+?%S+?%S+?(.*)|") msg = StringLower(msg) if checkForAdvertising(msg) then if checkForSafe(msg) then return nil end Core.SendToOps("<"..sBot.."> *** Запрещенный поиск! Юзер: <"..tUser.sNick.."> с ip "..tUser.sIP.." искал: "..msg) Core.SendToUser(tUser,"<"..sBot.."> *** Вы были забaнены за запрещенный поисковой запрос, отсылаемый с Вашего клиента!") BanMan.TempBan(tUser,BanTime,sReason,sBot,true) end end function checkForAdvertising(msg) for _,v in ipairs(adverTable) do if string.find(msg, v) then return true end end return false end function checkForSafe(msg) for _,v in ipairs(safeTable) do if string.find(msg, v) then return true end end return false end function StringLower(msg) local res = "" local Byte, Len = nil, string.len(msg) msg = string.lower(msg) for i = 1, Len do Byte = string.byte(msg, i) if (Byte >= 192) and (Byte < 224) then Byte = Byte + 32 end if (Byte == 168) or (Byte == 184) then Byte = 229 end res = res..string.char(Byte) end return res end |
|
|
![]()
Сообщение
#6
|
|
![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз ![]() |
Приведённый тобой скрипт похож на скрипт из первого поста так-же, как ВАЗ-"классика" на Мерседес. Почему-то никому не приходит в голову называть ВАЗ ранней версией Мерседеса и жаловаться в мерсовский сервис-центр на проблемы с "классикой".
|
|
|
![]() ![]() |
Похожие темы
![]() |
Сейчас: 8.9.2024, 2:55 |