Koruma.tcl PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
## HeRe We Go eh!
bind pub - "şerfsi*" badword
bind pub - "sikitir" badword
bind pub - "orosp*" badword
bind pub - "ibine" badword
bind pub - "*.com" reklam
bind pub - "*.c o m" reklam
bind pub - "*.net" reklam
set ZName "Kufur Korumasi]"
set ZZ "-=( ZimoZimo )=-"
set ZBan "4Kufurlu yazilar yazmayin"
set 1ST "\[1st COUNT\]"
set 2ED "\[2ed COUNT\]"
set 3ED "\[3ed COUNT\]"
set Ohh "\[Perm Ban\]"
proc badword {nick host hand chan rest} {
if {$nick == "Radyo"} { return 0 }
if {$nick == "Radyobotu"} { return 0 }
if {$nick == "Oyuncak"} { return 0 }
if {$nick == "Oyuncakbotu"} { return 0 }
putlog "$nick $hand $chan $host $rest"
global repeat_last repeat_num repeat-badword channel botnick ZBan 1ST 2ED 3ED Ohh ZName ZZ text
if {$hand != "*"} {
if {([ matchattr $hand n ])} {
return 0
}}
if {([ matchattr $hand m ])} {
putserv "GLINE $nick :$ZBan"
return 1
} elseif {([matchattr $hand 3])} {
chattr $hand +k
set ZZReason "$ZName Detected $Ohh For $hand"
# newchanban $chan [maskhost $host] $botnick $ZZReason perm
putserv "GLINE $nick :$ZBan"
return 1
} elseif {([matchattr $hand 2])} {
chattr $nick +3-2
set 3EDReason "$ZName Detected $3ED For $hand"
# newchanban $chan [maskhost $host] $botnick $3EDReason perm
putserv "GLINE $nick :$ZBan"
return 0
} elseif {([matchattr $hand 1])} {
chattr $hand +2-1o
set 2EDReason "$ZName Detected $2ED For $hand"
# newchanban $chan [maskhost $host] $botnick $2EDReason 60
putserv "GLINE $nick :$ZBan"
return 1
} elseif {[ matchattr $hand o ]} {
chattr $hand +1
putserv "GLINE $nick :$ZBan"
return 1
} {
adduser $nick [maskhost [getchanhost $nick $chan]]
chattr $hand +1-op
putserv "GLINE $nick :$ZBan"
return 0
}}
proc reklam {nick host hand chan rest} {
if {$nick == "Radyo"} { return 0 }
if {$nick == "Radyobotu"} { return 0 }
if {$nick == "Oyuncak"} { return 0 }
if {$nick == "Oyuncakbotu"} { return 0 }
putlog "$nick $hand $chan $host $rest"
global repeat_last repeat_num repeat-reklam channel botnick ZBan 1ST 2ED 3ED Ohh ZName ZZ text
if {$hand != "*"} {
if {([ matchattr $hand n ])} {
return 0
}}
if {([ matchattr $hand m ])} {
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {([matchattr $hand 3])} {
chattr $hand +k
set ZZReason "$ZName Detected $Ohh For $hand"
# newchanban $chan [maskhost $host] $botnick $ZZReason perm
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {([matchattr $hand 2])} {
chattr $nick +3-2
set 3EDReason "$ZName Detected $3ED For $hand"
# newchanban $chan [maskhost $host] $botnick $3EDReason perm
putserv "GLINE $nick :4Server reklami yasaktir"
return 0
} elseif {([matchattr $hand 1])} {
chattr $hand +2-1o
set 2EDReason "$ZName Detected $2ED For $hand"
# newchanban $chan [maskhost $host] $botnick $2EDReason 60
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {[ matchattr $hand o ]} {
chattr $hand +1
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} {
# adduser $nick [maskhost [getchanhost $nick $chan]]
# chattr $hand +1-op
putserv "GLINE $nick :4Server reklami yasaktir"
return 0
}}
putlog "\[Word|KiCk\] v3.0 By -=( ZimoZimo )=- is Loaded"
set ZName "Kufur Korumasi]"
set ZZ "-=( ZimoZimo )=-"
set ZBan "4Kufurlu yazilar yazmayin"
set 1ST "\[1st COUNT\]"
set 2ED "\[2ed COUNT\]"
set 3ED "\[3ed COUNT\]"
set Ohh "\[Perm Ban\]"
proc badword {nick host hand chan rest} {
if {$nick == "Radyo"} { return 0 }
if {$nick == "Radyobotu"} { return 0 }
if {$nick == "Oyuncak"} { return 0 }
if {$nick == "Oyuncakbotu"} { return 0 }
putlog "$nick $hand $chan $host $rest"
global repeat_last repeat_num repeat-badword channel botnick ZBan 1ST 2ED 3ED Ohh ZName ZZ text
if {$hand != "*"} {
if {([ matchattr $hand n ])} {
return 0
}}
if {([ matchattr $hand m ])} {
putserv "GLINE $nick :$ZBan"
return 1
} elseif {([matchattr $hand 3])} {
chattr $hand +k
set ZZReason "$ZName Detected $Ohh For $hand"
# newchanban $chan [maskhost $host] $botnick $ZZReason perm
putserv "GLINE $nick :$ZBan"
return 1
} elseif {([matchattr $hand 2])} {
chattr $nick +3-2
set 3EDReason "$ZName Detected $3ED For $hand"
# newchanban $chan [maskhost $host] $botnick $3EDReason perm
putserv "GLINE $nick :$ZBan"
return 0
} elseif {([matchattr $hand 1])} {
chattr $hand +2-1o
set 2EDReason "$ZName Detected $2ED For $hand"
# newchanban $chan [maskhost $host] $botnick $2EDReason 60
putserv "GLINE $nick :$ZBan"
return 1
} elseif {[ matchattr $hand o ]} {
chattr $hand +1
putserv "GLINE $nick :$ZBan"
return 1
} {
adduser $nick [maskhost [getchanhost $nick $chan]]
chattr $hand +1-op
putserv "GLINE $nick :$ZBan"
return 0
}}
proc reklam {nick host hand chan rest} {
if {$nick == "Radyo"} { return 0 }
if {$nick == "Radyobotu"} { return 0 }
if {$nick == "Oyuncak"} { return 0 }
if {$nick == "Oyuncakbotu"} { return 0 }
putlog "$nick $hand $chan $host $rest"
global repeat_last repeat_num repeat-reklam channel botnick ZBan 1ST 2ED 3ED Ohh ZName ZZ text
if {$hand != "*"} {
if {([ matchattr $hand n ])} {
return 0
}}
if {([ matchattr $hand m ])} {
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {([matchattr $hand 3])} {
chattr $hand +k
set ZZReason "$ZName Detected $Ohh For $hand"
# newchanban $chan [maskhost $host] $botnick $ZZReason perm
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {([matchattr $hand 2])} {
chattr $nick +3-2
set 3EDReason "$ZName Detected $3ED For $hand"
# newchanban $chan [maskhost $host] $botnick $3EDReason perm
putserv "GLINE $nick :4Server reklami yasaktir"
return 0
} elseif {([matchattr $hand 1])} {
chattr $hand +2-1o
set 2EDReason "$ZName Detected $2ED For $hand"
# newchanban $chan [maskhost $host] $botnick $2EDReason 60
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} elseif {[ matchattr $hand o ]} {
chattr $hand +1
putserv "GLINE $nick :4Server reklami yasaktir"
return 1
} {
# adduser $nick [maskhost [getchanhost $nick $chan]]
# chattr $hand +1-op
putserv "GLINE $nick :4Server reklami yasaktir"
return 0
}}
putlog "\[Word|KiCk\] v3.0 By -=( ZimoZimo )=- is Loaded"
arabul.tcl PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
# google.tcl v0.2.1
#
# !google keywords - displays the first related website found from google in the channel
# !image keywords - displays the first related image found on google in the channel
# !file keywords - displays the first mirror download link found on filemirrors in the channel
#
# by aNa|0Gue -
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
-
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">package require http
bind pub - !google pub:google
bind pub - !image pub:image
bind pub - !file pub:file
set agent "Mozilla"
proc pub:google { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
} else {
set query "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">for { set index 0 } { $index<[llength $arg] } { incr index } {
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then {
set query "$query+"
}
}
#putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
puts stderr ""
upvar #0 $token state
set max 0
foreach {name value} $state(meta) {
if {[regexp -nocase ^location$ $name]} {
set newurl [string trim $value]
putserv "PRIVMSG $channel :$newurl"
}
}
}
}
proc pub:image { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes des mots boulet !"
} else {
set query "http://images.google.de/images?btnI=&q="
for { set index 0 } { $index<[llength $arg] } { incr index } {
set query "$query[lindex $arg $index]"
if {$index<[llength $arg]-1} then {
set query "$query+"
}
}
append query &imgsafe=off
# putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
puts stderr ""
upvar #0 $token state
set max 0
foreach {name value} $state(meta) {
if {[regexp -nocase ^location$ $name]} {
set starturl "http://"
set newurl [string trim $value]
set newurl [string range $newurl [expr [string first = $newurl]+1] [expr [string first & $newurl]-1]]
append starturl $newurl
putserv "PRIVMSG $channel :$starturl"
}
}
}
}
proc pub:file { nick uhost handle channel arg } {
global agent
if {[llength $arg]==0} {
putserv "PRIVMSG $channel :hey ! tappes un nom de fichier boulet !"
} else {
set query "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">set query "$query[lindex $arg 0]"
# putserv "PRIVMSG $channel :$query"
set token [http::config -useragent $agent]
set token [http::geturl $query]
set html [http::data $token]
puts stderr ""
upvar #0 $token state
set max 0
# foreach {name value} $state(meta) {
# putserv "PRIVMSG $channel :$value"
# }
# putserv "PRIVMSG $channel :$html"
set result "[lindex $html 1]"
set result [string range $result [expr [string first = $result]+2] [expr [string first > $result]-2]]
putserv "PRIVMSG $channel :$result"
}
}
putlog "Google v0.2.1 - LOADED!"
floot.tcl PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
set mc_bf(exempt) of|of
set kickbantime 5
set mc_bf(maxfluds) 1:1800
set mc_bf(maxkickbantime) 30
set mc_bf(flood) 3:5
set mc_bf(global_ignore) 10
set mc_bf(enforce) 1
set mc_bf(bitch) 1
set mc_bf(sndb) 1
set mc_bf(rcvb) 1
set mc_bf(boot) 1
set mc_bf(bantype) 2
##### Do not edit past here
set mc_bf(version) "v1.9.1"
proc mc:tw:all {nick uhost hand type chana} {
global kickbantime botnick mc_bf lastbind {botnet-nick} {use-silence}
set exempt [split $mc_bf(exempt) "|"]
if {[lindex $exempt 1] == ""} {if {[matchattr $hand [lindex $exempt 0]]} {return 1}} {
if {[matchattr $hand $mc_bf(exempt) $chana]} {return 1}
}
if {![string match $nick!* $uhost]} {set uhost $nick!$uhost}
set ban [mcbf:inter:masktype $uhost $mc_bf(bantype)]
if {$chana == "*"} {set chana me ; putlog "BanFlooders: $nick is $type flooding me!"} {
if {$type == "deop"} {
putlog "BanFlooders: $type flood detected at $chana via $nick!"
set test 0
if {[lindex $exempt 1] == ""} {if {[matchattr $hand $mc_bf(exempt)]} {set test 1}} {
if {[matchattr $hand $mc_bf(exempt) $chana]} {set test 1}
}
# Utilizing botnet to stop a deop flood.
if {!$test} {
putallbots "bot_mcbf $chana $nick $ban $botnick"
putquick "MODE $chana -o+bo $nick $ban $botnick"
if {![info exists mc_bf(!ignore:$nick)]} {
if {$mc_bf(enforce)} {
putquick "MODE $chana +simk [encrypt [rand 9999999999] [rand 9999999999]]"
}
# ^
# On Deop Flud, do Biotch!
if {$mc_bf(bitch)} {
foreach user [chanlist $chana] {
if {([isop $user $chana]) && (![matchattr [nick2hand $user] o|o $chana]) &&
($user != $botnick)} {pushmode $chana -o $user}
}
}
if {$mc_bf(sndb)} {putallbots "bot_bitch $nick $chana"}
set mc_bf(!ignore:$nick) 1
utimer 2 "catch {unset mc_bf(!ignore:$nick)}"
}
# ^
}
}
} ; if {[isignore $uhost] && $chana == "me"} {return 1}
# Maximum floods section.
if {[mc:tw:maxd $ban]} {
# Max floods, Ignoreing
putlog "Auto ignoring $nick \[$hand\] MAX fluds! ($mc_bf(maxkickbantime) min.s), $type flooding $chana. $ban"
newignore $ban "FludProt" "$type flooding $chana (MAX fluds!)" $mc_bf(maxkickbantime)
if {([info exists {use-silence}]) && (${use-silence} == "1")} {
timer $mc_bf(maxkickbantime) "putserv {SILENCE -$ban}"
}
# Max Floods, Doing ban on channel being flooded (if chan flood)
if {($chana != "me") && ([isop $botnick $chana])} {
mc:tw:autoban $nick $ban $chana $chana $mc_bf(maxkickbantime) $type
}
# Searching all channels for user
foreach channel [string tolower [mcbf:inter:lremove [channels] [string tolower $chana]]] {
foreach item [mcbf:inter:findchanuser $ban $channel] {
if {[isop $botnick $channel]} {
set test 0
if {[lindex $exempt 1] == ""} {if {[matchattr [nick2hand $item $channel] $mc_bf(exempt)]} {set test 1}} {
if {[matchattr [nick2hand $item $channel] $mc_bf(exempt) $channel]} {set test 1}
} ; if {!$test} {mc:tw:autoban $item $ban $channel $chana $mc_bf(maxkickbantime) $type}
}
}
}
} {
# Doing Ignore
putlog "Auto ignoring $nick \[$hand\]($kickbantime min.s), $type flooding $chana. $ban"
newignore $ban "FludProt" "$type flooding $chana" $kickbantime
if {([info exists {use-silence}]) && (${use-silence} == "1")} {
timer $kickbantime "putserv {SILENCE -$ban}"
}
# Ban in channel being flooded (if chan flood)
if {($chana != "me") && ([isop $botnick $chana])} {
mc:tw:autoban $nick $ban $chana $chana $kickbantime $type
}
# Searching all channels for user
foreach channel [mcbf:inter:lremove [string tolower [channels]] [string tolower $chana]] {
foreach item [mcbf:inter:findchanuser $ban $channel] {
if {[isop $botnick $channel]} {
set test 0
if {[lindex $exempt 1] == ""} {
if {[matchattr [nick2hand $item $channel] $mc_bf(exempt)]} {set test 1}
} {
if {[matchattr [nick2hand $item $channel] $mc_bf(exempt) $channel]} {set test 1}
} ; if {!$test} {mc:tw:autoban $item $ban $channel $chana $kickbantime $type}
}
}
}
}
# Search botnet for user
if {$mc_bf(boot)} {
set ban [string range $uhost [expr [string first "@" $uhost]+1] e]
foreach item [whom *] {
if {[string match $ban [string range [lindex $item 2] [expr [string first "@" [lindex $item 2]]+1] e]]} {
set user [lindex $item 0] ; set bot [lindex $item 1]
boot $user@$bot "$type flooding $chana"
if {$bot != ${botnet-nick}} {
putbot $bot "mcbf:boot $user via ${botnet-nick}: $type flooding $chana"
}
}
}
} ; return 1
}
proc mc:tw:maxd {test} {
global mc_bf
if {([info exists mc_bf($test)]) &&
($mc_bf($test) == [lindex [split $mc_bf(maxfluds) :] 0])} {
unset mc_bf($test) ; killutimer $mc_bf($test:id) ; return 1
}
if {![info exists mc_bf($test)]} {set mc_bf($test) 1} {
incr $mc_bf($test) 1 ; if {[info exists mc_bf($test:id)]} {killutimer $mc_bf($test:id)}
}
set mc_bf($test:id) [utimer [lindex [split $mc_bf(maxfluds) :] 1] "unset mc_bf($test)"]
utimer [lindex [split $mc_bf(maxfluds) :] 1] "unset mc_bf($test:id)" ; return 0
}
proc mc:tw:autoban {nick ban chan chana time type} {
global kickbantime mc_bf ; set who "Auto-Set" ; set why "Not smart to $type flood $chana"
putlog "Auto banned $nick ($time min.s) $type flooding $chana, banning on $chan --> $ban"
newchanban $chan $ban $who $why $time ; putserv "KICK $chan $nick :$why"
putserv "MODE $chan +b $ban" ; return 1
}
proc mc:tw:initallflud {} {
global mc_bf
if {![string match *:* $mc_bf(flood)]} {return "banflooders: set the global settings please."}
set mc_bf(flood_num) [lindex [split $mc_bf(flood) :] 0]
set mc_bf(flood_time) [lindex [split $mc_bf(flood) :] 1]
set i [expr $mc_bf(flood_num) - 1] ; while {$i >= 0} {set mc_bf_array($i) 0 ; incr i -1}
}
proc mc_bf_flood {} {
global mc_bf ; if {!$mc_bf(flood_num)} {return 0} ; set i [expr $mc_bf(flood_num) - 1]
while {$i >= 1} {set mc_bf_array($i) $mc_bf_array([expr $i - 1]) ; incr i -1}
set mc_bf_array(0) [unixtime]
if {[expr [unixtime] - $mc_bf_array([expr $mc_bf(flood_num) - 1])] <= $mc_bf(flood_time)} {
newignore *!*@* FludProt "Global flood" $mc_bf(global_ignore)
return 1} {return 0}
}
mc:tw:initallflud
proc bf:global {nick uhost hand dest key args} {
global mc_bf ; if {$key == "ACTION"} {return 0} ; set exempt [split $mc_bf(exempt) |]
if {[lindex $exempt 1] == ""} {if {[matchattr $hand $mc_bf(exempt)]} {return 0}} {
if {$chana == "*"} {if {[matchattr $hand [lindex $exempt 0]]} {return 0}} {
if {[matchattr $hand $mc_bf(exempt) $chana]} {return 0}}}
if {[mc_bf_flood]} {putlog "ALEART: ignoring everyone, mass ctcp flood detected!"}
return 0
}
proc bot:mcbf {from command args} {
global botnick
if {[llength $args] == "1"} {set args [lindex $args 0]}
putquick "MODE [lindex $args 0] -o+boo [lrange $args 1 3] $botnick"
}
proc mcbf:bot:boot {from command args} {
if {[llength $args] == "1"} {set args [lindex $args 0]}
boot [lindex $args 0] [lrange $args 1 e]
}
proc mcbf:bot:bitch {from command args} {
global mc_bf botnick
if {[llength $args] == "1"} {set args [lindex $args 0]}
set nic [lindex $args 0] ; set args [lindex $args 1]
if {![info exists mc_bf(!ignore:$nic)]} {
if {($mc_bf(rcvb)) && ([validchan $args])} {
putlog "BanFlooders: Recieved a \"DO BITCH\" request from $from for $args. Processing..."
foreach user [chanlist $args] {
if {([isop $user $args]) && (![matchattr [nick2hand $user] o|o $args]) &&
($user != $botnick)} {pushmode $args -o $user}
}
}
set mc_bf(!ignore:$nic) 1
utimer 2 "catch {unset mc_bf(!ignore:$nic)}"
}
}
proc mcbf:inter:findchanuser {hostmask channel} {
if {![validchan $channel]} {return -code error "no such channel record"} ; set buffer ""
foreach user [chanlist $channel] {
if {[string match $hostmask "$user![getchanhost $user $channel]"]} {set buffer "$buffer $user"}
} ; return [join [split $buffer] " "]
}
proc mcbf:inter:masktype {uhost type} {
if {![string match "*!*@*.*" $uhost]} {
set nick [lindex [split $uhost "!"] 0]
if {$nick == ""} {
set uhost [string range $uhost [expr [string first ! $uhost]+1] e]
foreach chan [channels] {
set nick [lindex [mcbf:inter:findchanuser *$uhost* $chan] 0]
if {$nick != ""} {break}
}
if {$nick == ""} {set uhost $nick!} {set uhost "$nick![mcbf:inter:gethost $nick]"}
}
if {$uhost == "$nick!"} {set type "return_nothing"}
}
switch -exact $type {
0 {set ban "*[string range $uhost [string first ! $uhost] e]"}
1 {set ban "*!*[string trimleft [string range $uhost [expr [string first ! $uhost]+1] e] "~"]"}
2 {set ban "*!*[string range $uhost [string first @ $uhost] e]"}
3 {
set ident [string range $uhost [expr [string first ! $uhost]+1] [expr [string last @ $uhost]-1]]
set ban "*!*[string trimleft $ident "~"][string range [maskhost $uhost] [string first @ [maskhost $uhost]] e]"
}
4 {set ban "*!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"}
5 {set ban $uhost}
6 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range $uhost [string last "@" $uhost] e]"
}
7 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range $uhost [string last "@" $uhost] e]"
}
8 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "$nick!*[string trimleft $ident "~"][string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
9 {
set nick [string range $uhost 0 [expr [string first "!" $uhost]-1]]
set ban "$nick!*[string range [maskhost $uhost] [string last "@" [maskhost $uhost]] e]"
}
10 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!$ident$host"
} {set ban [mcbf:inter:masktype $uhost 0]}
}
11 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ident [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]]
set ban "*!*[string trimleft $ident "~"]$host"
} {set ban [mcbf:inter:masktype $uhost 1]}
}
12 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set ban "*!*$host"
} {set ban [mcbf:inter:masktype $uhost 2]}
}
13 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {set ban [mcbf:inter:masktype $uhost 11]} {set ban [mcbf:inter:masktype $uhost 3]}
}
14 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {set ban [mcbf:inter:masktype $uhost 12]} {set ban [mcbf:inter:masktype $uhost 4]}
}
15 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest [string range $uhost 0 [expr [string last "@" $uhost]-1]]
set ban $rest$host
} {set ban [mcbf:inter:masktype $uhost 5]}
}
16 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!" $uhost]-1]]!*[string trimleft [string range $uhost [expr [string first "!" $uhost]+1] [expr [string last "@" $uhost]-1]] "~"]"
set ban $rest$host
} {set ban [mcbf:inter:masktype $uhost 6]}
}
17 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {
set host [mcbf:inter:replace $host "1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 ? 8 ? 9 ? 0 ?"]
set rest "[string range $uhost 0 [expr [string first "!" $uhost]-1]]!*"
set ban $rest$host
} {set ban [mcbf:inter:masktype $uhost 7]}
}
18 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {set ban [mcbf:inter:masktype $uhost 16]} {set ban [mcbf:inter:masktype $uhost 8]}
}
19 {
set host [string range $uhost [string last "@" $uhost] e]
if {[mcbf:inter:findip [string range $host 1 e]] == "0"} {set ban [mcbf:inter:masktype $uhost 17]} {set ban [mcbf:inter:masktype $uhost 9]}
}
return_nothing {set ban ""}
default {set ban "*!*[string range $uhost [string first "@" $uhost] e]"}
}
set _nick [lindex [split $ban !] 0]
set _ident [string range $ban [expr [string first ! $ban]+1] [expr [string last @ $ban]-1]]
set _host [string range $ban [expr [string last @ $ban]+1] e]
if {$_ident != [set temp [string range $_ident [expr [string length $_ident]-9] e]]} {
set _ident *[string trimleft $temp *]
}
if {$_host != [set temp [string range $_host [expr [string length $_host]-63] e]]} {
set _host *[string trimleft $temp *]
} ; return $_nick!$_ident@$_host
}
proc mcbf:inter:replace {string subs} {
if {[llength $subs] == "1"} {set subs [lindex $subs 0]}
for {set i 0} {[lindex $subs $i] != ""} {incr i 2} {
regsub -all -- [lindex $subs $i] $string [lindex $subs [expr $i+1]] string
} ; return $string
}
proc mcbf:inter:findip {args} {
catch {unset mc_found_ip}
if {![string match *.*.*.* $args]} {return 0}
foreach arg $args {
if {[string match *.*.*.* $arg]} {
set mc_testa [split $arg "."] ; set i 0
while {[llength $mc_testa] != $i} {
set mc_test [lrange $mc_testa $i end]
if {[string length [lindex $mc_test 1]]<4 && [string length [lindex $mc_test 2]]<4} {
if {[lindex $mc_test 1] < 256 && [lindex $mc_test 2] < 256 && [lindex $mc_test 1] >= 0 && [lindex $mc_test 2] >= 0} {
set first "abcdefghi"
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 1] end]
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 2] end]
if {[string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3]] <= 9 && [string index [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3]] >= 0} {
set first [string range [lindex $mc_test 0] [expr [string length [lindex $mc_test 0]] - 3] end]
}
}
}
set second [lindex $mc_test 1] ; set third [lindex $mc_test 2] ; set fourth "abcdefghi"
if {[string index [lindex $mc_test 3] 0] <= 9 && [string index [lindex $mc_test 3] 0] >= 0} {
set fourth [string index [lindex $mc_test 3] 0]
if {[string index [lindex $mc_test 3] 1] <= 9 && [string index [lindex $mc_test 3] 1] >= 0} {
set fourth $fourth[string index [lindex $mc_test 3] 1]
if {[string index [lindex $mc_test 3] 2] <= 9 && [string index [lindex $mc_test 3] 2] >= 0} {
set fourth $fourth[string index [lindex $mc_test 3] 2]
}
}
}
if {($first < 256) && ($second < 256) && ($third < 256) &&
($fourth < 256) && ($first > 0) && ($second > 0) &&
($third > 0) && ($fourth > 0) && ([string index $first 0] > 0) &&
([string index $second 0] > 0) && ([string index $third 0] > 0) &&
([string index $fourth 0] > 0)} {
if {[info exists mc_found_ip]} {
set mc_found_ip "$mc_found_ip $first.$second.$third.$fourth"
} {set mc_found_ip $first.$second.$third.$fourth}
}
}
} ; incr i +1
}
}
} ; if {[info exists mc_found_ip]} {return $mc_found_ip} {return 0}
}
proc mcbf:inter:lremove {list data} {
set new_list ""
foreach item $data {
while {[lsearch -exact $list $item] > "-1"} {
set list [lreplace $list [lsearch -exact $list $item] [lsearch -exact $list $item]]
}
} ; return $list
}
proc mcbf:inter:gethost {args} {
set nick [lindex [split $args] 0]
foreach chan [channels] {
if {[onchan $nick $chan]} {
return [getchanhost $nick $chan]
}
} ; return ""
}
set trigger-on-ignore 2
bind flud - * mc:tw:all
bind ctcp - * bf:global
bind bot - bot_mcbf bot:mcbf
bind bot - mcbf:boot mcbf:bot:boot
bind bot - bot_bitch mcbf:bot:bitch
putlog "Ban Flooders $mc_bf(version) by MC_8 Loaded."
Bir de standart olarak
source scripts/alltools.tcl source scripts/action.fix.tcl source scripts/userinfo.tcl
Olanlar, istersen onları da koyabilirim. Şimdiden teşekkürler