Cevap: TCL scripting öğrenmek istiyorum
# Clone limiti. set clonelimit "3" # Clone kick sebebi. set clonereason "Clone girisi tespit edildi." # Muaf hostlar. set clonemuafhost1 "ircop.domain.com"
set clonemuafhost2 "coadmin.domain.com"
set clonemuafhost3 "servicesadmin.domain.com"
set clonemuafhost4 "serveradmin.domain.com"
set clonemuafhost5 "netadmin.domain.com" bind join - * clones:kick
proc clones:kick {nick uhost hand chan} {
global botnick clonelimit clonereason clonemuafhost1 clonemuafhost2 clonemuafhost3 clonemuafhost4 clonemuafhost5
if {$nick == $botnick} { return 0 }
if {[string match -nocase $clonemuafhost1 [scan $uhost %*\[^@\]@%s]] || [string match -nocase $clonemuafhost2 [scan $uhost %*\[^@\]@%s]] || [string match -nocase $clonemuafhost3 [scan $uhost %*\[^@\]@%s]] || [string match -nocase $clonemuafhost4 [scan $uhost %*\[^@\]@%s]] || [string match -nocase $clonemuafhost5 [scan $uhost %*\[^@\]@%s]]} { return 0 }
set clone 0
foreach tara [chanlist $chan] {
if {[string equal -nocase [scan $uhost %*\[^@\]@%s] [scan [getchanhost $tara $chan] %*\[^@\]@%s]]} {
incr clone
lappend cln $tara
}
if {$clone >= $clonelimit} {
foreach all [chanlist $chan] {
if {[string equal -nocase [scan $uhost %*\[^@\]@%s] [scan [getchanhost $all $chan] %*\[^@\]@%s]]} {
putquick "MODE $chan +b *!*[string range $uhost [string first @ $uhost] e]"
putquick "KICK $chan $all $clonereason"
}
}
}
}
} |