IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

 Kayıt ol  Topluluk
1Beğeni(ler)
  • 1 Post By house

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 08 Eylül 2012, 21:56   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
AntiTrojan TCL Türkçe




Merhaba arkadaşlar..

AntiTrojan TCL paylaşıyorum, ne işe yaradığına gelince, kanallarınıza girişte kullanıcı random nick, random ident kullanmışsa, renk kodlarını aşırı (veya belirticeğiniz sayıda) kullanmışsa, belirli kelime ve karakterleri notice felan atıyosa kullanıcıyı banlicak. Kullanıcı kanaldan atıldığında bi seçenek sunulacak (kick mesajında var) ve dicek ki eğer bot değilsen /msg Botnick removeme yap ve ıspatla ki kanala girebilesin. Ayarları tcl içinden yapıp kullanabileceğiniz gibi, bota konsoldan bağlanıp .chanset #kanal +özellik / -özellik gibi de kullanabilirsiniz. Detaylı bişey kullanışlı da. Buyrun;


PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!

################################################################################################################################### 
#                  antitrojan.tcl konfigürasyonu                                # 
################################################################################################################################### 

############### 
# - Tespit olayı
############### 

# botun giriceği kanal(lar)
set trojan_testchan "#Kontrol #Opers" 

# nick ve ident tamamen büyük harflerden oluşuyorsa ceza puanı
set trojan_only_big 10 

# felancı kadar sayı varsa ceza puanı
set digits_in_nickname 4 

# veya felancıdan daha fazla sayı varsa ceza puanı
set digits_in_ident 4 

# nick sayı fazlalığında eklenicek ceza puanı
set trojan_digit_nickname 10 

# ident sayı fazlalığında eklenicek ceza puanı
set trojan_digit_ident 10 

# random fullname varsa eklenicek ceza puanı
set trojan_random_realname 30 

# fullname içinde aşırı renk kodu varsa eklenicek ceza
set trojan_realname_with_color 0 

# tüm renkler (fullname/away mesajı)
set trojan_colors "   " 

# tüm reklam/küfürler (fullname/away mesajı)
set trojan_badwords "# 
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #FF8000"># ident random ise ceza
set trojan_random_authname 0 

# away mesajında küfür varsa ceza
set trojan_away_with_badword 0 

# fullname kısmında reklam/küfür varsa ceza
set trojan_realname_with_badword 0 

# away mesajın random ise ceza
set trojan_random_away 0 

# away mesajı renk kodu içeriyosa ceza
set trojan_away_with_color 0 

# kullanıcı şu süre kadar suskun kalabilir, aksi halde ceza (dakika cinsinden)
set trojan_idletime 30 

# aksi halde ceza uygula? (0/1)
set trojan_less_idle 0 

# cezalı kişiler kanallarda yetkiliyse cezayı daha da artır ki aklı başına gelsin
set trojan_status_op 3 
set trojan_status_voice 2 
set trojan_status_regular 2 
set trojan_status_delayed 2 

# en az şukadar kanalda olması lazım birinin
set trojan_minimum_chans 4 

# eğer değilse şu kadar puan ceza
set trojan_to_less_chans 10 

# şu kelimeleri hariç tut trojan sayma
set trojan_goodwords "bnc off et cs play game zzz" 

# random nickte ceza puanı
set trojan_random_nickname 30 

# random identte ceza puanı
set trojan_random_ident 20 

############################# 
# - Remove from trojan list 
############################# 

# eğer kişilerin kendilerini trojan listesinden silmesini istemiyorsanız aşağıdaki satırın başına # koyun
bind msg removeme trojan:msg:removeme 

###################### 
# - Kick/Ban Mevzuları
###################### 

# kickmsg: 
# trojanbot <- bu kelime önemli. biri kendini listeden silince bu kelime de yasaklı listesinden çıkarılır.
# bu kelimenin kick mesajında olmasını sağlayın.
set trojan_kick_reason "1..:: Sebep: Trojan botu tespit edildi! :: Eğer flood botu değilseniz tekrar giriş yapın :: ve şu komutu kullanarak bot olmadığınızı ıspatlayın: /msg :botnick: removeme 1 :: badpoints: :points: :: ID: :id: ::.." 

# ceza puanı şu sayıya ulaşırsa banla
set trojan_max_points 11 

# trojanları banla? (1 veya 0)
# ban kendi kendine açılmayacak, oplar açarsa ayrı tabi.
set trojan_ban 1 

# trojanları kickle?
set trojan_kick 1 

# ayı IP den girenleri de temizle?
set trojan_newchanban 0 

# ban süresi (dakika)
set trojan_newchan_bantime 10 

# global ban kullan? (önerilir)
set trojan_newban 0 

# global ban süresi (dakika) 
set trojan_newban_bantime 1 

################### 
# - Debug olayı
################### 

# konsolda banlanan veya kicklenenleri göster
set trojan_debugmode 1 

# hata ayıklamak için daha fazla mesaj
set ::trojan_debug_mode 1 

# bir kullanıcı nekadar suskun kalabilir? (dakika)
set authed_time 60 

# kullanıcı nekadar away kalabilir?
set away_time 60 

# kullanıcı nekadar suskun kalabilir sunucu yetkilisiyken?
set ircop_time 1400 

# botun whois kontrolü yapıcağı zaman aralığı (dakika)
# milleti korkutmamak için sayıyı fazla düşürme :)
set trojan_floodprot 5 

################################################################################################################################### 
#                  less channels   (alpha)                              # 
################################################################################################################################### 

# .chanset #kanaliniz +less_channels 
# .chanset #kanaliniz -less_channels 
# .chanset #kanaliniz min_channel 5 
# veya herneyse işte. 

set to_less_channels_reason "Çok az sayıda kanalda bulunuyorsunuz :/" 

setudef flag less_channels 

setudef str min_channels 

proc lesschannel 
nickname count_chans } { 
   global 
botnick to_less_channels_reason 
   set botnic 
[string tolower $botnick
   
set nickname [string tolower $nickname
   if { 
$nickname == $botnic } { return } 
   foreach 
channel [channels] { 
      if { ! [
validchan $channel] } { continue } 
      if { ! [
isop $botnick $channel] } { continue } 
      if { ! [
channel get $channel less_channels] } { continue } 
      if { [
onchan $nickname $channel] } { continue } 
      
set host [getchanhost $nickname
      
set BUZAin "trojankeepout!$host
      
set hostname [get:ban:mask $BUZAin
      if { [
string match -nocase "*.users.quakenet.org*" $hostname] } { continue } 
      
set fullhost "$nickname!$hostname
      
set handle [finduser $fullhost
      if { [
matchattr handle mnofvI|mnofvI $channel] } { continue } 
      if { [
string equal -nocase $handle "nofloodbot"] } { return } 
      
set min_channels [channel get $channel min_channels
      if { 
$min_channels == "" } { 
         continue 
      } 
      if { 
$min_channels == } { 
         continue 
      }       
      if { 
$min_channels == } { 
         continue 
      } 
      if { 
$min_channels $count_chans } { return } 
      
put:quick $channel +b $hostname 
      kick
:user $channel $nickname $to_less_channels_reason 
      flood
:detect $channel 
   



################################################################################################################################### 
#                  trojan bind nick                                 # 
################################################################################################################################### 

# bind nick - * trojan:nickchange 
proc trojan:nickchange nickname hostname handle channel newnick } { 
   if { ! [
validchan $channel] } { return } 
   global 
botnick 
   
if { $nickname == $botnick } { return } 
   if { 
$newnick == $botnick } { return } 
   
set nickname $newnick 
   trojan
:join $nickname $hostname $handle $channel 


################################################################################################################################### 
#                  trojan test join                                 # 
################################################################################################################################### 

proc trojan:test nickname } { 
   global 
trojan_testchan 
   set hostname 
"x@y" 
   
set handle "*" 
   
trojan:join $nickname $hostname $handle $trojan_testchan 


################################################################################################################################### 
#                  trojan join                                    # 
################################################################################################################################### 

setudef flag antitrojan 

# bind join - * trojan:join 
proc trojan:join nickname hostname handle channel } { 

   if { ! [
channel get $channel antitrojan] } { return } 
   global 
botnick 

   set botnic 
[string tolower $botnick
   
set nickname [string tolower $nickname
   if { 
$nickname == $botnic } { return } 

   
set nickname [string tolower $nickname

   global 
trojan_random_nickname trojan_random_ident trojan_goodwords trojan_floodprot 

   
if { [matchattr handle mnofvI|mnofvI $channel] } { return } 

   if { ! [
validchan $channel] } { return } 

   if { [
string equal -nocase $handle "nofloodbot"] } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan:join: $nickname -- $hostname -- $channel -- nofloodbot" 
      

      return 
   } 

   if { [
string match -nocase "*.users.quakenet.org*" $hostname] } { return } 

   if { [
isban $hostname $channel] } { return } 
   if { [
isban $hostname] } { return } 

   if { 
$trojan_goodwords != "" } { 
      foreach 
nobadword $trojan_goodwords 
         if { [
string match -nocase $nobadword $nickname] } { 
            return 
         } 
      } 
   } 

   
set ident [lindex [split $hostname "@"0

   
set BUZAout $hostname 

   
if { [info exists ::trojandns($BUZAout) ] } { return } 
   if { ! [
info exists ::trojandns($BUZAout) ] } { 
      
set ::trojandns($BUZAout
      timer $trojan_floodprot 
[list unset ::trojandns($BUZAout)] 
   } 

   if { [
info exists ::trojan_points($nickname) ] } { 
      unset ::
trojan_points($nickname
   } 
   
set ::trojan_points($nickname

   
if { $::trojan_debug_mode } { 
      
putlog "trojan:join: $nickname -- $hostname -- $channel
   


   if { [
trojan:meltdown $nickname] } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_random_nickname $trojan_random_nickname
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_random_nickname}] 
   } 
   if { [
trojan:meltdown $ident] } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_random_ident $trojan_random_ident
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_random_ident}] 
   } 

   global 
trojan_only_big 
   
if { [trojan:onlybig $nickname] && [trojan:onlybig $ident] } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_only_big $trojan_only_big
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_only_big}] 
   } 

   
set digit_nickname [trojan:digits $nickname
   
set digit_ident [trojan:digits $ident

   global 
digits_in_nickname digits_in_ident trojan_digit_nickname trojan_digit_ident 

   
if { $digit_nickname >= $digits_in_nickname } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_digit_nickname $trojan_digit_nickname
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_digit_nickname}] 
   } 

   if { 
$digit_ident >= $digits_in_ident } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_digit_ident $trojan_digit_ident
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_digit_ident}] 
   } 

   
whois $nickname $hostname $channel 



################################################################################################################################### 
#                  meltdowns nickchecker (copy right in script header)                  # 
################################################################################################################################### 

proc trojan:meltdown input } { 
   
set result 0 
   set check
(cons"bcdfghjklmnpqrstvxyz" 
   
set check(good"tt ll ss" 
   
set check(affixture"off bnc \[ \] afk" 
   
set const_count 0 
   set score 0 
   set txt 
[string map "0 o 1 l 3 e 7 t 4 a" $input
   foreach 
[split $check(good)] { 
      
set txt [string map -nocase "$x \"\"" $txt
   } 
   foreach 
[split $check(affixture)] { 
      if { [
string match -nocase *$x$txt] } { 
         
set txt [string map -nocase "$x \"\"" $txt
         
set score [expr {$score 10}] 
      } 
   } 
   for { 
set x 0 } { $x < [string length $txt] } { incr x } { 
      if { [
string last [string index $txt $x$check(cons) ] > -} { 
         
incr const_count 
         
if { $const_count >= } { set score [expr {$score+10}] } 
      } else { 
         
set const_count 0 
      

   } 
   if { 
$score >= 30 } { 
      
set result 1 
   

   return 
$result 


################################################################################################################################### 
#                  trojan onlybig                                 # 
################################################################################################################################### 

proc trojan:onlybig input } { 
   
set output 0 
   set output 
[regexp {^[A-Z]+$} $input
   return 
$output 


################################################################################################################################### 
#                  trojan digits                                    # 
################################################################################################################################### 

proc trojan:digits input } { 
   
set output [regexp -all {[0-9]} $input
   return 
$output 


################################################################################################################################### 
#                  trojan raw 301 - realname                              # 
################################################################################################################################### 

bind raw 311 trojan:raw:311 

proc trojan
:raw:311 from key text } { 
   global 
trojan_random_realname trojan_colors trojan_badwords trojan_realname_with_badword trojan_realname_with_color 
   set nickname 
[lindex [split $text " "1
   
set realname [lindex [split $text ":"end
   
set nickname [string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 
   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   

   if { [
trojan:meltdown $realname] } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_random_realname $trojan_random_realname
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_random_realname}] 
   } 
   foreach 
color $trojan_colors 
      if { [
string match "*$color*" $realname] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_realname_with_color $trojan_realname_with_color" 
         
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_realname_with_color}] 
         break 
      } 
   } 
   foreach 
badword $trojan_badwords 
      if { [
string match "*$badword*" $realname] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_realname_with_badword $trojan_realname_with_badword" 
         
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_realname_with_badword}] 
         break 
      } 
   } 
   
set ::real_name($nickname$realname 


################################################################################################################################### 
#                  realname                                    # 
################################################################################################################################### 

proc realname nickname } { 
   if { [
info exists ::real_name($nickname) ] } { 
      return $::
real_name($nickname
   } else { 
      return 

   



################################################################################################################################### 
#                  trojan raw 330 - auth                              # 
################################################################################################################################### 

bind raw 330 trojan:raw:330 

proc trojan
:raw:330 from key text } { 
   global 
trojan_random_authname authed_time 
   set nickname 
[lindex [split $text " "1
   
set authname [lindex [split $text " "2
#   putlog "trojan: nickname: $nickname -- authname: $authname " 
   
set nickname [string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 
   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   

   if { [
trojan:meltdown $authname] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_random_authname $trojan_random_authname" 
      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_random_authname}] 
   } 
   
set ::authed($nickname$authname 
   utimer $authed_time 
[list catch { unset ::authed($nickname) } error


################################################################################################################################### 
#                  is authed or not                                 # 
################################################################################################################################### 

proc authed nickname } { 
   if { [
info exists ::authed($nickname) ] } { 
      return 

   
} else { 
      return 

   



################################################################################################################################### 
#                  trojan raw 301 - away                              # 
################################################################################################################################### 

bind raw 301 trojan:raw:301 

proc trojan
:raw:301 from key text } { 
   
putlog "trojan:raw:301 -- away -- $text
   
global trojan_random_away away_time trojan_colors trojan_away_with_color trojan_badwords trojan_away_with_badword 
   set nickname 
[lindex [split $text " "1
   
set nickname [string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 
   
set away [lindex [split $text ":"end
   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   

   if { [
trojan:meltdown $away] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_random_away $trojan_random_away" 
      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_random_away}] 
   } 
   foreach 
color $trojan_colors 
      if { [
string match "*$color*" $away] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_away_with_color $trojan_away_with_color" 
         
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_away_with_color}] 
         break 
      } 
   } 
   foreach 
badword $trojan_badwords 
      if { [
string match "*$badword*" $away] } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- + trojan_away_with_badword $trojan_away_with_badword" 
         
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_away_with_badword}] 
         break 
      } 
   } 
   
set ::away($nickname
   
if { $away == "" } { 
      catch { unset ::
away($nickname) } error 
   

   
utimer $away_time [list catch { unset ::away($nickname) } error



################################################################################################################################### 
#                  is away or not                                 # 
################################################################################################################################### 

proc away nickname } { 
   
set nickname [string tolower $nickname
   if { [
info exists ::away($nickname) ] } { 
      return 

   
} else { 
      return 

   



################################################################################################################################### 
#                  trojan raw 313 - irc op                              # 
################################################################################################################################### 

bind raw 313 trojan:raw:313 

proc trojan
:raw:313 from key text } { 
   global 
ircop_time 
   set nickname 
[lindex [split $text " "1
   
set nickname [string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 
   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   

   
set ::trojan_points($nickname
   set 
::ircop($nickname
   
if { $::trojan_debug_mode } { 
      
putlog "trojan:raw:313: $nickname is an IRC Operator" 
   

#   timer $ircop_time [list catch { unset ::ircop($nickname) } error] 


################################################################################################################################### 
#                  is ircop or not                                 # 
################################################################################################################################### 

proc ircop nickname } { 
   if { [
info exists ::ircop($nickname) ] } { 
      return 

   
} else { 
      return 

   



################################################################################################################################### 
#                  trojan raw 317 - idletime                              # 
################################################################################################################################### 

bind raw 317 trojan:raw:317 

proc trojan
:raw:317 from key text } { 
   global 
trojan_idletime trojan_less_idle 
   set nickname 
[lindex [split $text " "1
   
set nickname [string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 
   
set idletime [lindex [split $text " "2
   
set singon [lindex [split $text " "3
#   putlog "trojan: nickname: $nickname -- idletime: $idletime -- singon: $singon" 
   
if { ! [info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   

   if { 
$idletime $trojan_idletime } { 
#      putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- idletime: $idletime < trojan_idletime: $trojan_idletime + $trojan_less_idle" 
      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_less_idle}] 
   } 


################################################################################################################################### 
#                  trojan raw 319 - channel                              # 
################################################################################################################################### 

bind raw 319 trojan:raw:319 

proc trojan
:raw:319 from key text } { 

   global 
trojan_status_op trojan_status_voice trojan_status_regular trojan_status_delayed trojan_minimum_chans trojan_to_less_chans 

   set nickname 
[lindex [split $text " "1
   
set nickname [string tolower $nickname
   
set chans [lindex [split $text ":"end

   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 

   if { $::
trojan_debug_mode } { 
      
putlog "trojan nickname: $nickname -- chans: $chans
   


   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   


   
set op_channels 0 
   set voice_channels 0 
   set regular_channels 0 
   set delay_channels 0 

   set count_chans 0 
   
foreach channel $chans 
      
set status [string index $channel 0
      
set count_chans [expr {$count_chans +1}] 
      if { 
$status == "@" } { 
         
set op_channels [expr {$op_channels +1}] 
      } 
      if { 
$status == "+" } { 
         
set voice_channels [expr {$voice_channels +1}] 

      } 
      if { 
$status == "#" } { 
         
set regular_channels [expr {$regular_channels +1}] 
      } 
      if { 
$status == "<" } { 
         
set delay_channels [expr {$delay_channels +1}] 
      } 
   } 

   
set oppoints [expr {$op_channels $trojan_status_op}] 
   
set voicepoints [expr {$voice_channels $trojan_status_voice}] 
   
set regularpoints [expr {$regular_channels $trojan_status_regular}] 
   
set delaypoints [expr {$delay_channels $trojan_status_delayed}] 

   
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) - $oppoints}] 
   if { $::
trojan_debug_mode } { 
      
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- op_channels: $op_channels -- oppoints: $oppoints
   


   
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) - $voicepoints}] 
   if { $::
trojan_debug_mode } { 
      
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- voice_channels: $voice_channels -- voicepoints: $voicepoints
   


   
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) - $regularpoints}] 
   if { $::
trojan_debug_mode } { 
      
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- regular_channels: $regular_channels -- regularpoints: $regularpoints
   


   
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) - $delaypoints}] 
   if { $::
trojan_debug_mode } { 
      
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- delay_channels: $delay_channels -- delaypoints: $delaypoints
   


   
lesschannel $nickname $count_chans 

   
if { $count_chans $trojan_minimum_chans } { 
      if { $::
trojan_debug_mode } { 
         
putlog "trojan: nickname: $nickname -- points: $::trojan_points($nickname) -- user is only in $count_chans chans -> + $trojan_to_less_chans
      

      
set ::trojan_points($nickname) [expr {$::trojan_points($nickname) + $trojan_to_less_chans}] 
   } 



################################################################################################################################### 
#                  trojan raw 318 - end whois                              # 
################################################################################################################################### 

bind raw 318 trojan:raw:318 

proc trojan
:raw:318 from key text } { 

   
set nickname [lindex [split $text " "1
   
set nickname [string tolower $nickname

   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 

   if { ! [
info exists ::trojan_points($nickname) ] } { 
      
set ::trojan_points($nickname
   


   
trojan:after:whois $nickname $::trojan_points($nickname

   if { [
info exists ::trojan_points($nickname) ] } { 
      unset ::
trojan_points($nickname
   } 



################################################################################################################################### 
#                  trojan after whois                                 # 
################################################################################################################################### 

proc trojan:after:whois nickname points } { 

   global 
trojan_max_points 

   set nickname 
[string tolower $nickname
   global 
botnick 
   set botnic 
[string tolower $botnick
   if { 
$nickname == $botnic } { return } 

   if { $::
trojan_debug_mode } { 
      
putlog "trojan:after:whois: $nickname -- authed: [authed $nickname]" 
      
putlog "trojan:after:whois: $nickname -- away: [away $nickname]" 
      
putlog "trojan:after:whois: $nickname -- ircop: [ircop $nickname]" 
      
putlog "14trojan:after:whois: $nickname -- points: $points -- \/whois $nickname
   


   if { [
ircop $nickname] } { return } 
   if { [
authed $nickname] } { return } 
   if { 
$points <= || $points == "" } { return } 

   if { $::
trojan_debug_mode } { 
      
putlog "4trojan:after:whois: $nickname -- points: $points -- \/whois $nickname
   


   if { 
$points >= $trojan_max_points } { 
      
trojan:keepout $nickname $points 
   




################################################################################################################################### 
#                  trojan remove me                                 # 
################################################################################################################################### 

proc trojan:msg:removeme nickname hostname handle text } { 
   
set BUZAin "antitrojan!$hostname
   
set BUZAout [get:ban:mask $BUZAin
#   if { [info exists ::trojanremoveme($BUZAout) ] } { return } 
   
if { ! [info exists ::trojanremoveme($BUZAout) ] } { 
      
set ::trojanremoveme($BUZAout
      timer 60 
[list unset ::trojanremoveme($BUZAout) ] 
   } 
   
set addhost [maskhostxx "$nickname!$hostname3
   
set hand "nofloodbot" 
   
if { ! [validuser $hand] } { 
      
putlog "trojan:msg:removeme adduser $hand
      
adduser $hand 
   

   if { [
validuser $hand] } { 
      
putlog "trojan:msg:removeme setuser $hand hosts $addhost
      
setuser $hand hosts $addhost 
   


   
putserv "NOTICE $nickname :You added yourself to my userbase. I will not kick you again if you stick to this host: $addhost ." 

   
if { [isban $BUZAout] } { trojan:remove:globalban $BUZAout 
   if { [
isban $addhost] } { trojan:remove:globalban $addhost 

   foreach 
channel [channels] { 
      if { [
validchan $channel] } { 
         if { [
isban $BUZAout $channel] } { trojan:remove:chanban $BUZAout $channel 
         if { [
isban $addhost $channel] } { trojan:remove:chanban $addhost $channel 
      } 
   } 

   
utimer 2 [list unban:all:channel $BUZAout
   
utimer 2 [list unban:all:channel $addhost



# 1 
proc trojan:remove:globalban hostname } { 
   global 
trojan_kick_reason 
   
foreach bans [banlist] { 
      
set ban [lindex $bans 0
      
set reason [lindex $bans 1
      if { [
string match -nocase "*$hostname*" $ban] } { 
         if { [
string match -nocase "*trojanbot*" $reason] } { 
            
killban $ban 
         

      } 
   } 


# 2 
proc trojan:remove:chanban hostname channel } { 
   global 
trojan_kick_reason 
   
foreach bans [banlist $channel] { 
      
set ban [lindex $bans 0
      
putlog "$ban
      
set reason [lindex $bans 1
      if { [
string match -nocase "*$hostname*" $ban] } { 
         if { [
string match -nocase "*trojanbot*" $reason] } { 
            
killchanban $channel $ban 
         

      } 
   } 


################################################################################################################################### 
#                  trojan keepout                                 # 
################################################################################################################################### 

proc trojan:keepout nickname points } { 

   global 
trojan_kick_reason botnick trojan_ban trojan_kick trojan_debugmode trojan_testchan 
   
global trojan_newchan_bantime trojan_newchanban trojan_newban trojan_newban_bantime 

   set handle 
[nick2hand $nickname

   if { [
string equal -nocase $::botnick $nickname] } { return } 
   if { [
string equal -nocase $handle "nofloodbot"] } { return } 
   if { 
$trojan_goodwords != "" } { 
      foreach 
nobadword $trojan_goodwords 
         if { [
string match -nocase $nobadword $nickname] } { 
            return 
         } 
      } 
   } 
   if { [
string match -nocase "*.users.quakenet.org*" $hostname] } { return } 
   if { [
matchattr handle mnofvI|mnofvI $channel] } { return } 

   
set id [id $trojan_testchan

   
regsub -all -- {:id:} $trojan_kick_reason $id trojan_kick_reason 
   regsub 
-all -- {:botnick:} $trojan_kick_reason $botnick trojan_kick_reason 
   regsub 
-all -- {:points:} $trojan_kick_reason $points trojan_kick_reason 
   set trojan_kickmsg $trojan_kick_reason 

#   append trojan_kickmsg " And please type: /msg $botnick removeme 1 :: badpoints: $points :: ID: $id ::.." 

   
set host [getchanhost $nickname
   
set BUZAin "trojankeepout!$host
   
set hostname [get:ban:mask $BUZAin

   if { [
isban $hostname] } { return } 

   foreach 
channel [channels] { 
#      if { ! [isop $botnick $channel] } { continue } 
      
if { ! [channel get $channel antitrojan] } { continue } 
      if { ! [
onchan $nickname $channel] } { continue   } 
      if { [
isban $hostname $channel] } { continue } 
      if { 
$trojan_debugmode } { 
#         putlog "newchan:ban $channel $hostname antitojan.tcl $trojan_kickmsg $trojan_newchan_bantime" 
#         putlog "new:ban $channel $hostname antitojan.tcl $trojan_kickmsg $trojan_newban_bantime" 
#         putlog "0,4trojan:keepout: put:quick $channel +b $hostname" 
         
putlog "0,4trojan:keepout: kick:user $nickname $channel$trojan_kickmsg
      

      if { 
$trojan_ban } { 
         
put:quick $channel +b $hostname 
      

      if { 
$trojan_kick } { 
         
flood:detect $channel 
         kick
:user $nickname $channel $trojan_kickmsg 
      

      if { 
$trojan_newchanban } { 
         
newchan:ban $channel $hostname "antitojan.tcl" $trojan_kickmsg $trojan_newchan_bantime 
      

      if { 
$trojan_newban } { 
         new:
ban $channel $hostname "antitojan.tcl" $trojan_kickmsg $trojan_newchan_bantime 
      

   } 



 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Cevapla

Etiketler
antitrojan, tcl, türkçe


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Dünya Dili Türkçe: Hangi Dilde Kaç Türkçe Sözcük Var. Sue Türkçe 0 18 Temmuz 2012 20:38
Dünya Dili Türkçe: Hangi Dilde Kaç Türkçe Sözcük Var. Sevda Türkçe 0 25 Haziran 2011 00:48
/antitrojan Sarp mIRC Scripting Sorunları 5 26 Ocak 2008 03:26
antitrojan NeTDeLiSi Unreal IRCd 5 04 Şubat 2007 19:25