myDC.ru

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

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

> Скрипт лимитер, ограничение соединений по ip и символов в чате

Теги
Нет тегов для показа
ShadoWx
сообщение 27.8.2011, 20:23
Сообщение #1


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

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 60 раз




Автор: Alexey
Попросил Лешу помочь с написанием этого скрипта, вот что получилось в итоге. Уверен начинающим пригодится т.к. лимитов на русхабе по умолчанию нет.
Есть для общего чата в конфиг-файле, но там пользователя просто отключают.

Код
local nMaxUsers = 1 -- максимальное разрешённое число пользователей с одного IP
----------------------------------------------------------------
function OnUserConnected(UID)
    tSameIPs = Core.GetUsers(UID.sIP)
    if tSameIPs and #tSameIPs >= nMaxUsers then
        local sMsg = "\n       [::] В доступе отказано: на хабе уже есть пользователи с этого IP-адреса: "
        for i,v in ipairs(tSameIPs) do
            sMsg = sMsg..v.sNick..", "
        end
        sMsg = sMsg:sub(1, -3)..".\n       [::]  Множественные подключения к хабу с одного IP-адреса запрещены."
        Core.SendToUser(UID, sMsg, "[OP]Домовёнок")
        Core.Disconnect(UID)
    end
end

local nMaxSymbols = 350 -- максимальное разрешённое число символов в гл.чате
----------------------------------------------------------------

function OnChat(UID, sData)
    local nMaxSymbols = #UID.sNick + nMaxSymbols + 3
    if #sData > nMaxSymbols then
        Core.SendToAll(sData:sub(1, nMaxSymbols).."<...>")
        return true
    end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
DEN 007
сообщение 27.8.2011, 23:53
Сообщение #2


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

Группа: Пользователи
Сообщений: 276
Регистрация: 23.3.2010
Из: РФ Смоленск
Пользователь №: 6 429
Спасибо сказали: 60 раз




ShadoWx, для чата лучше допиши функцию которая отправит этому же юзеру сообщение например такое:
<БОТ> В нашем чате можно отправлять сообщения не более 350 символов, Ваше сообщение:/n Тут текст сообщения юзера

P.S. Так как юзеров в том числе и меня бесит когда сообщение просто кушаеться хабом, приходится все писать с начала, что не есть гуд + к юзабилию.

----Некоторое время позднее----

Так же можно посчитать символы сообщения и выдать сколько символов в сообщение юзера.


Спасибо сказали:
Go to the top of the page
+Quote Post
ShadoWx
сообщение 23.9.2011, 8:37
Сообщение #3


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

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 60 раз




Автор: Alexey
Выкладываю поправленную версию скрипта:

Код
#------------------------------------------------------------------
#Число соединений с одного ip-адреса:
#------------------------------------------------------------------
local nMaxUsers = 2 -- максимальное разрешённое число пользователей с одного IP
local MainBot = "Network"
local sReason = "*** Соединение через прокси запрещено"
local sAdminNick = "ShadoWx"
#----------------------------------------------------------------
function OnUserConnected(UID)
    tSameIPs = Core.GetUsers(UID.sIP)
    if tSameIPs and #tSameIPs >= nMaxUsers then
        local sMsg = "\n       [::] В доступе отказано: на хабе уже есть пользователи с этого IP-адреса: "
        for i,v in ipairs(tSameIPs) do
            sMsg = sMsg..v.sNick..", "
        end
        sMsg = sMsg:sub(1, -3)..".\n       [::]  Множественные подключения к хабу с одного IP-адреса запрещены."
        Core.SendToUser(UID, sMsg, "Network")
        Core.Disconnect(UID)
    end
end

#------------------------------------------------------------------
#Ограничение чата:
#------------------------------------------------------------------
local nMaxSymbols = 350 -- максимальное разрешённое число символов в одном сообщении
local nMaxNL    = 5  -- максимальное разрешённое число строк в одном сообщении чата
#------------------------------------------------------------------
function OnChat(UID, sData)
    local nSymbols = #sData - #UID.sNick - 3
    if nSymbols > nMaxSymbols then
      Core.SendToAll(sData:sub(1, nMaxSymbols - nSymbols))
        Core.SendToUser(UID, "Ваше сообщение состоит из ["..nSymbols.."] символов, разрешённый максимум - ["..nMaxSymbols.."].", "Network")
        Core.SendToUser(UID, "Нажмите сочетание клавиш CTRL+UP и сократите текст своего сообщения.", "Network")
        return true
    end
    local _, nNL = sData:gsub("\n", "\n")
  if nNL >= nMaxNL then
       Core.SendToUser("Ваше сообщение содержит "..nNL.." переносов строк, разрешённый максимум - "..nMaxNL..".", "Network")
        return true
    end
end

#------------------------------------------------------------------
#функция блокировки пассивного тега у пользователя
#------------------------------------------------------------------
function OnUserEnter(UID)
    if UID.sMode == "S" then
    Core.SendToUser(UID,sReason,MainBot)
    Core.Disconnect(UID.sNick)
    if Core.GetUser(sAdminNick) then
        Core.SendToUser(sAdminNick," юзер с ником  "..UID.sNick.." и IP "..UID.sIP.." пытался войти на хаб используя прокси  !!!",MainBot)
    else
    local hFile = io.open ("log.txt" , "a+")
        if hFile then
        hFile:write("<"..MainBot.."> юзер с ником  "..UID.sNick.." и IP "..UID.sIP.." пытался войти на хаб используя прокси  !!!\r\n")
        hFile:close()
        end
    end
    end
end
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsНерабочий скрипт ВИПа по шаре
16 Damaks 18 462 23.2.2023, 7:16 Посл. сообщение: mod
No new Topic has attachmentsMagneto - Бесплатный Скрипт Портала Обмена Dc-ссылками Для Локальной Сети
26 UserSide 39 269 27.8.2019, 11:01 Посл. сообщение: CyberGhost404
No New Posts От: Новогодний Скрипт
От темы с ID: 871
0 Евгений 2 782 15.10.2018, 21:44 Посл. сообщение: Евгений
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 7 308 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Скрипт: Бот который отвечает в лс
4 мамин_парень 6 958 11.11.2017, 5:57 Посл. сообщение: мамин_парень
No New Posts как сделать вот этот скрипт
12 мамин_парень 11 098 13.9.2017, 10:51 Посл. сообщение: dimetro
No New Posts Topic has attachmentsИщу скрипт переадресации (redirect)
Переадресация интернет-юзеров
3 AS_Com 6 590 27.8.2017, 8:05 Посл. сообщение: Ksan
No New Posts Topic has attachmentsСкрипт Thunder.lua
7 Евген76 14 492 9.8.2017, 11:48 Посл. сообщение: Ksan
No New Posts Требуется скрипт
Нужен скрипт запрета на подключение
5 Nikolaevich 8 776 20.8.2016, 19:52 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsСкрипт банов для RusHub
тестим и комменьтруем
79 Wariner 99 143 28.9.2015, 13:34 Посл. сообщение: NeirRon
No New Posts Скрипт загрузки файла
1 FreeNas 5 976 21.7.2015, 10:58 Посл. сообщение: HackFresse
No new Как вызвать bash скрипт из Lua
14 Iskandark 15 929 3.3.2015, 12:42 Посл. сообщение: Iskandark
No new Topic has attachmentsНовогодний Скрипт
API2
22 Tsd 33 756 12.12.2014, 16:28 Посл. сообщение: Tsd
No New Posts Скрипт запрета видеть чат
запрет видеть чат
2 dimetro 6 795 5.12.2014, 17:37 Посл. сообщение: dimetro
No New Posts Topic has attachmentsпеределать скрипт kinozal.tv
6 BOKOREZ 11 998 30.10.2014, 18:29 Посл. сообщение: Dani_Filth

 



RSS Сейчас: 28.3.2024, 22:06