Название: Anti Flood Join v1.0
Скрипт: AntiFloodJoin.mrc
Программа: mIRC
Автор: Epic
Описание: Скрипт активирует защиту, когда один и тот же пользователь начинает слишком быстро и многократно перезаходить на канал. При достижении определённого лимита перезаходов за короткое время - на нике нарушителя будет выполнено "Kick+Ban". Каждый пользователь записывается во временную хеш-таблицу по хосту для дальнейшей проверки превышения установленного лимита.

Настройка: Вы можете изменить настройки параметров скрипта через алиас "jflood" на необходимые вам значения.

  • join-max - настраивает максимальное количество входа на канал, при достижении которого на пользователя будет установлен "Kick+Ban". По умолчанию: <2>.

  • time-max - настраивает максимальное число секунд, в течении которого пользователь может быть забанен, при достижении предела входа на канал. По умолчанию: <4>.

  • kick-text - настраивает текст сообщения причины Кика и установки Бана для извещения нарушителя. По умолчанию: <Stop Join Flood!>.

  • type-ban - настраивает 1 из 7 представленных типов Бана, который будет установлен в случае достижения лимита подключений за указанное время в секундах. По умолчанию: <6>.

Установка:

  • Откройте редактор скриптов вашего клиента при помощи комбинации клавиш "ALT+R".

  • Далее через верхнее меню "File/New" откройте новый файл и разместите там код.

  • Далее через верхнее меню "File/Save As..." сохраните код как скрипт под названием "AntiFloodJoin.mrc".

  • Если у вас уже установлена предыдущая версия этого скрипта, то замените его новым кодом. Не оставляйте предыдущие версии скриптов во избежании конфликтов.

Скачать: 💾 AntiFloodJoin_v1.0.rar

Код:
#####################################################################
#   Название: Anti Flood Join v1.0
#   Автор: Epic (epicnet@mail.ru, http://epicnet.ru)
#   Описание: Защита от Join/Part флуда. Все настройки производятся через алиас "jflood".
#####################################################################

alias -l jflood {
  .hadd -m jf join-max 2
  .hadd -m jf time-max 4
  .hadd -m jf kick-text Stop Join Flood!
  ;---------------------
  ;# Type 1 = nick!ident@host
  ;# Type 2 = nick!*@host
  ;# Type 3 = *!ident@host
  ;# Type 4 = nick!*@*
  ;# Type 5 = *!ident@*
  ;# Type 6 = *!*@host
  ;# Type 7 = *!*@subnet*
  ;---------------------
  .hadd -m jf type-ban 6
}
on *:JOIN:#:{
  jflood | var %jf_chan $+(jfchan-,$chan) | var %jf_nick $+(jfnick-,$chan) | var %jf_ip $gettok($address($nick,5),2,64)
  if ($hget(%jf_chan,%jf_ip)) { .hinc -m %jf_chan %jf_ip 1 }
  if (!$hget(%jf_chan,%jf_ip)) { .hadd -mu $+ $hget(jf,time-max) %jf_chan %jf_ip 1 | .hadd -m %jf_nick %jf_ip $nick }
  .echo $chan 04JFLOOD: >>> $hget(%jf_nick,%jf_ip) $+($chr(40),%jf_ip,$chr(41)) = $+(04,$hget(%jf_chan,%jf_ip))
  if ($hget(%jf_chan,%jf_ip) >= $hget(jf,join-max)) {
    ;---------------------
    if ($hget(jf,type-ban) == 1) .mode $chan +b $address($hget(%jf_nick,%jf_ip),5)
    if ($hget(jf,type-ban) == 2) .mode $chan +b $address($hget(%jf_nick,%jf_ip),7)
    if ($hget(jf,type-ban) == 3) .mode $chan +b $address($hget(%jf_nick,%jf_ip),0)
    if ($hget(jf,type-ban) == 4) .mode $chan +b $+($hget(%jf_nick,%jf_ip),!*@*)
    if ($hget(jf,type-ban) == 5) .mode $chan +b $+($gettok($address($hget(%jf_nick,%jf_ip),1),1,64),@*)
    if ($hget(jf,type-ban) == 6) .mode $chan +b $address($hget(%jf_nick,%jf_ip),2)
    if ($hget(jf,type-ban) == 7) .mode $chan +b $+(*!*@,$gettok(%jf_ip,1-2,46),.*)
    ;---------------------
    .kick $chan $hget(%jf_nick,%jf_ip) $hget(jf,kick-text)
    .hdel -sw %jf_chan %jf_ip
  }
}

P.S. Если у вас возникли вопросы, вы столкнулись с трудностями по установке скрипта, или вы обнаружили ошибки, а может быть у вас появились новые идеи по модификации данного скрипта, то обязательно напишите здесь об этом.

Подпись автора

[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]