<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/19903" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2016-03-02T04:41:51-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/19903</id>

		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2016-03-02T04:41:51-04:00</updated>

		<published>2016-03-02T04:41:51-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=104769#p104769</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=104769#p104769"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=104769#p104769"><![CDATA[
tested and  it worked fine thnx again SpiKe^^<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Mar 02, 2016 4:41 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2016-03-02T00:07:01-04:00</updated>

		<published>2016-03-02T00:07:01-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=104767#p104767</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=104767#p104767"/>
		<title type="html"><![CDATA[multi-host-nick-flood.tcl v1.6.1 by SpiKe^^]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=104767#p104767"><![CDATA[
This version adds three new settings (see below) <br><br> Please test.<br><div class="codebox"><p>Code: </p><pre><code># multi-host-nick-flood.tcl v1.6.1 (1Mar2016) by SpiKe^^, closely based on# repeat.tcl v1.1 (9Apr1999) by slennox &lt;slenny@ozemail.com.au&gt;# Special Thanks go out to speechles &amp; caesar## NEW ADDED: This version adds three new settings  (see below) ### Nick flood, kick-ban on repeats:seconds #set mhnk(flood) 3:10# Nick flood kick-ban reason #set mhnk(reasn) "Nick Flood!"# Max number of bans to stack in one mode command #set mhnk(maxb) 6# Max number of kicks to stack in one kick command #          &lt;- NEW SETTING &lt;-# NOTE: many networks allow more than one nick to be kicked per command. ##       set this at or below the max for your network.set mhnk(maxk) 3# Length of time in minutes to ban Nick flooders ## - set 0 to disable this script removing bans (ex. set mhnk(btime) 0) #set mhnk(btime) 1# After a valid Nick flood, script will continue to ## kick-ban offenders for an additional 'x' seconds #set mhnk(xpire) 10# Set the type of ban masks to use #                          &lt;- NEW SETTING &lt;-#  1 = use host/ip specific bans (ex. *!*@some.host.com) ##  2 = use wide masked host/ip bans (ex. *!*@*.host.com) ##      note: setting 2 requires eggdrop 1.6.20 or newer. #set mhnk(btype) 2# Set protected host(s) that should not be wide masked #      &lt;- NEW SETTING &lt;-# - Example:  set mhnk(phost) "*.undernet.org"#  Note: this setting only applies to ban type 2 above! ##  Note: set empty to not protect any hosts (ex. set mhnk(phost) "") ##  Note: space separated if listing more than one protected host #set mhnk(phost) ""# Set channel mode(s) on flood detected. ## - set empty to disable setting channel modes (ex. set mhnk(mode) "") #set mhnk(mode) "imN"# Remove these channel modes after how many seconds? #set mhnk(mrem) 20# END OF SETTINGS # Don't edit below unless you know what you're doing #bind nick - * nk_bindnickproc nk_bindnick {oldnick uhost hand chan nick} {  global mhnk mhnc mhnq  set uhost [string tolower $nick!$uhost]  set chan [string tolower $chan]  if {[isbotnick $nick]} { return 0 }  if {[matchattr $hand f|f $chan]} { return 0 }  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  if {[info exists mhnc($chan)]} {    set uhlist [lassign $mhnc($chan) cnt ut]    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($chan) }    } elseif {$utnow &gt; $expire} { unset mhnc($chan) }  }  if {![info exists mhnc($chan)]} {    set mhnc($chan) [list 1 $utnow $uhost]    return 0  }  incr cnt  if {$cnt &lt;= $target} {    if {[lsearch $uhlist $uhost] == -1} { lappend uhlist $uhost }    if {$cnt &lt; $target} {      set mhnc($chan) [linsert $uhlist 0 $cnt $ut]    } else {      set mhnc($chan) [list $cnt $ut]      if {$mhnk(mode) ne "" &amp;&amp; [string is digit -strict $mhnk(mrem)]} {        putquick "MODE $chan +$mhnk(mode)"        utimer $mhnk(mrem) [list putquick "MODE $chan -$mhnk(mode)"]      }      nk_dobans $chan $uhlist    }    return 0  }  if {![info exists mhnq($chan)]} {    utimer 1 [list nk_bque $chan]    set mhnq($chan) [list $uhost]  } elseif {[lsearch $mhnq($chan) $uhost] == -1} {    lappend mhnq($chan) $uhost  }  if {[llength $mhnq($chan)] &gt;= $mhnk(maxb)} {    nk_dobans $chan $mhnq($chan)    set mhnq($chan) ""  }  return 0}proc nk_dobans {chan uhlist} {  global mhnk  if {![botisop $chan]} return  set banList ""  set nickList ""  foreach ele $uhlist {    scan $ele {%[^!]!%[^@]@%s} nick user host    if {$mhnk(btype) == 2} {      set type 4      foreach ph $mhnk(phost) {        if {[string match -nocase $ph $host]} {          set type 2  ;  break        }      }      set bmask [maskhost $ele $type]    } else {  set bmask "*!*@$host"  }    if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }    if {[lsearch $nickList $nick] == -1} { lappend nickList $nick }  }  stack_bans $chan $mhnk(maxb) $banList  foreach nk $nickList {     if {[onchan $nk $chan]} {  lappend nkls $nk  } else { continue }    if {[llength $nkls] == $mhnk(maxk)} {      putquick "KICK $chan [join $nkls ,] :$mhnk(reasn)"      unset nkls    }  }   if {[info exists nkls]} {    putquick "KICK $chan [join $nkls ,] :$mhnk(reasn)"  }   if {$mhnk(btime) &gt; 0} {    set expire [expr {[unixtime] + $mhnk(btime)}]    lappend mhnk(rmls) [list $expire $chan $banList]  }}proc stack_bans {chan max banlist {opt +} } {  set len [llength $banlist]  while {$len &gt; 0} {    if {$len &gt; $max} {      set mode [string repeat "b" $max]      set masks [join [lrange $banlist 0 [expr {$max - 1}]]]      set banlist [lrange $banlist $max end]      incr len -$max    } else {      set mode [string repeat "b" $len]      set masks [join $banlist]      set len 0    }    putquick "MODE $chan ${opt}$mode $masks"  }}proc nk_bque {chan} {  global mhnq  if {![info exists mhnq($chan)]} { return }  if {$mhnq($chan) eq ""} { unset mhnq($chan) ; return }  nk_dobans $chan $mhnq($chan)  unset mhnq($chan)}proc nk_breset {} {  global mhnc mhnk  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  foreach {key val} [array get mhnc] {    lassign $val cnt ut    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($key) }    } elseif {$utnow &gt; $expire} { unset mhnc($key) }  }  if {[info exists mhnk(rmls)]} {    while {[llength $mhnk(rmls)]} {      set next [lindex $mhnk(rmls) 0]      lassign $next expire chan banList      if {$expire &gt; $utnow} {  break  }      set mhnk(rmls) [lreplace $mhnk(rmls) 0 0]      if {![info exists rmAra($chan)]} {  set rmAra($chan) $banList      } else {  set rmAra($chan) [concat $rmAra($chan) $banList]  }    }    foreach {key val} [array get rmAra] {      set banList ""      foreach mask $val {        if {![ischanban $mask $key]} {  continue  }        lappend banList $mask      }      if {$banList eq ""} {  continue  }      if {![botisop $key]} {        set mhnk(rmls) [linsert $mhnk(rmls) 0 [list $utnow $key $banList]]      } else {  stack_bans $key $mhnk(maxb) $banList -  }    }    if {![llength $mhnk(rmls)]} {  unset mhnk(rmls)  }  }  utimer 30 [list nk_breset]}if {![info exists nk_running]} {  utimer 10 [list nk_breset]  set nk_running 1}set mhnk(flood) [split $mhnk(flood) :]set mhnk(btime) [expr {$mhnk(btime) * 60}]set mhnk(phost) [split [string trim $mhnk(phost)]]if {$mhnk(btime)==0 &amp;&amp; [info exists mhnk(rmls)]} {  unset mhnk(rmls)  }putlog "Loaded multi-host-nick-flood.tcl v1.6.1 by SpiKe^^"</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Wed Mar 02, 2016 12:07 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2015-05-17T10:08:58-04:00</updated>

		<published>2015-05-17T10:08:58-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=104112#p104112</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=104112#p104112"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=104112#p104112"><![CDATA[
Final safe version of multi-host-nick-flood.tcl <br> This version uses putquick instead of putnow, &amp; no longer requires the bot to be opered. <br><br> NEW ADDED: This version adds the ability to have this script remove any bans that it sets for nick flooders. <br><div class="codebox"><p>Code: </p><pre><code># multi-host-nick-flood.tcl v1.4 (17May2015) by SpiKe^^, closely based on# repeat.tcl v1.1 (9Apr1999) by slennox &lt;slenny@ozemail.com.au&gt;# Special Thanks go out to speechles &amp; caesar## IMPORTANT: This version of multi-host-nick-flood.tcl has been made ####            safe to run on any eggdrop bot (oper Not required)! #### NEW ADDED: This version adds the ability to have this script ####            remove any bans that it sets for nick flooders. ### Nick flood, kick-ban on nickchanges:seconds #set mhnk(flood) 3:10# Nick flood kick-ban reason #set mhnk(reasn) "Nick Flood!"# Max number of bans to stack in one mode command #set mhnk(maxb) 6# Length of time in minutes to ban Nick flooders ## - set 0 to disable this script removing bans (ex. set mhnk(btime) 0) #set mhnk(btime) 10# After a valid Nick flood, script will continue to ## kick-ban offenders for an additional 'x' seconds #set mhnk(xpire) 10# Set channel mode(s) on flood detected. ## - set empty to disable setting channel modes (ex. set mhnk(mode) "") #set mhnk(mode) "imN"# Remove these channel modes after how many seconds? #set mhnk(mrem) 20# END OF SETTINGS # Don't edit below unless you know what you're doing #bind nick - * nk_bindnickproc nk_bindnick {oldnick uhost hand chan nick} {  global mhnk mhnc mhnq  set uhost [string tolower $nick!$uhost]  set chan [string tolower $chan]  if {[isbotnick $nick]} { return 0 }  if {[matchattr $hand f|f $chan]} { return 0 }  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  if {[info exists mhnc($chan)]} {    set uhlist [lassign $mhnc($chan) cnt ut]    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($chan) }    } elseif {$utnow &gt; $expire} { unset mhnc($chan) }  }  if {![info exists mhnc($chan)]} {    set mhnc($chan) [list 1 $utnow $uhost]    return 0  }  incr cnt  if {$cnt &lt;= $target} {    if {[lsearch $uhlist $uhost] == -1} { lappend uhlist $uhost }    if {$cnt &lt; $target} {      set mhnc($chan) [linsert $uhlist 0 $cnt $ut]    } else {      set mhnc($chan) [list $cnt $ut]      if {$mhnk(mode) ne "" &amp;&amp; [string is digit -strict $mhnk(mrem)]} {        putquick "MODE $chan +$mhnk(mode)"        utimer $mhnk(mrem) [list putquick "MODE $chan -$mhnk(mode)"]      }      nk_dobans $chan $uhlist    }    return 0  }  if {![info exists mhnq($chan)]} {    utimer 1 [list nk_bque $chan]    set mhnq($chan) [list $uhost]  } elseif {[lsearch $mhnq($chan) $uhost] == -1} {    lappend mhnq($chan) $uhost  }  if {[llength $mhnq($chan)] &gt;= $mhnk(maxb)} {    nk_dobans $chan $mhnq($chan)    set mhnq($chan) ""  } elseif {[botisop $chan]} { putquick "KICK $chan $nick :$mhnk(reasn)" }  return 0}proc nk_dobans {chan uhlist} {  global mhnk  if {![botisop $chan]} return  set banList ""  set nickList ""  foreach ele $uhlist {    scan $ele {%[^!]!%[^@]@%s} nick user host    set bmask "*!*@$host"    if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }    if {[lsearch $nickList $nick] == -1} { lappend nickList $nick }  }  stack_bans $chan $mhnk(maxb) $banList  foreach nk $nickList {    if {[onchan $nk $chan]} { putquick "KICK $chan $nk :$mhnk(reasn)" }  }  if {$mhnk(btime) &gt; 0} {    set expire [expr {[unixtime] + $mhnk(btime)}]    lappend mhnk(rmls) [list $expire $chan $banList]  }}proc stack_bans {chan max banlist {opt +} } {  set len [llength $banlist]  while {$len &gt; 0} {    if {$len &gt; $max} {      set mode [string repeat "b" $max]      set masks [join [lrange $banlist 0 [expr {$max - 1}]]]      set banlist [lrange $banlist $max end]      incr len -$max    } else {      set mode [string repeat "b" $len]      set masks [join $banlist]      set len 0    }    putquick "MODE $chan ${opt}$mode $masks"  }}proc nk_bque {chan} {  global mhnq  if {![info exists mhnq($chan)]} { return }  if {$mhnq($chan) eq ""} { unset mhnq($chan) ; return }  nk_dobans $chan $mhnq($chan)  unset mhnq($chan)}proc nk_breset {} {  global mhnc mhnk  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  foreach {key val} [array get mhnc] {    lassign $val cnt ut    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($key) }    } elseif {$utnow &gt; $expire} { unset mhnc($key) }  }  if {[info exists mhnk(rmls)]} {    while {[llength $mhnk(rmls)]} {      set next [lindex $mhnk(rmls) 0]      lassign $next expire chan banList      if {$expire &gt; $utnow} {  break  }      set mhnk(rmls) [lreplace $mhnk(rmls) 0 0]      if {![info exists rmAra($chan)]} {  set rmAra($chan) $banList      } else {  set rmAra($chan) [concat $rmAra($chan) $banList]  }    }    foreach {key val} [array get rmAra] {      set banList ""      foreach mask $val {        if {![ischanban $mask $key]} {  continue  }        lappend banList $mask      }      if {$banList eq ""} {  continue  }      if {![botisop $key]} {        set mhnk(rmls) [linsert $mhnk(rmls) 0 [list $utnow $key $banList]]      } else {  stack_bans $key $mhnk(maxb) $banList -  }    }    if {![llength $mhnk(rmls)]} {  unset mhnk(rmls)  }  }  utimer 30 [list nk_breset]}if {![info exists nk_running]} {  utimer 20 [list nk_breset]  set nk_running 1}set mhnk(flood) [split $mhnk(flood) :]set mhnk(btime) [expr {$mhnk(btime) * 60}]if {$mhnk(btime)==0 &amp;&amp; [info exists mhnk(rmls)]} {  unset mhnk(rmls)  }putlog "Loaded multi-host-nick-flood.tcl v1.4 by SpiKe^^"</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Sun May 17, 2015 10:08 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-04-02T10:14:02-04:00</updated>

		<published>2015-04-02T10:14:02-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103740#p103740</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103740#p103740"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103740#p103740"><![CDATA[
it works excellent spike^^ job well done it executes well<br><br>thanx again nicely done<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Thu Apr 02, 2015 10:14 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2015-04-02T11:00:41-04:00</updated>

		<published>2015-04-01T22:36:28-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103739#p103739</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103739#p103739"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103739#p103739"><![CDATA[
Test and see...<div class="codebox"><p>Code: </p><pre><code># multi-host-nick-flood.tcl v1.3 (31Mar2015) by SpiKe^^, closely based on# repeat.tcl v1.1 (9 April 1999) by slennox &lt;slenny@ozemail.com.au&gt;# Special Thanks go out to speechles &amp; caesar## IMPORTANT ## DANGER ## IMPORTANT ## DANGER ## IMPORTANT ## DANGER #### This is the super-fast-egg-on-steroids version of this script!!!## DO NOT run this script unless your bot is opered and has no limits!## IMPORTANT ## DANGER ## IMPORTANT ## DANGER ## IMPORTANT ## DANGER ### Nick flood, kick-ban on repeats:seconds #set mhnk(flood) 3:10# Nick flood kick-ban reason #set mhnk(reasn) "Nick Flood!"# Max number of bans to stack in one mode command #set mhnk(maxb) 6# Length of time in minutes to ban Nick flooders ## NOT USED at this time #set mhnk(btime) 1# After a valid Nick flood, script will continue to ## kick-ban offenders for an additional 'x' seconds #set mhnk(xpire) 10# Set channel mode(s) on flood detected. ## - set empty to disable setting channel modes (ex. set mhnk(mode) "") #set mhnk(mode) "imN"# Remove these channel modes after how many seconds? #set mhnk(mrem) 20# END OF SETTINGS # Don't edit below unless you know what you're doing #bind nick - * nk_bindnickproc nk_bindnick {oldnick uhost hand chan nick} {  global mhnk mhnc mhnq  set uhost [string tolower $nick!$uhost]  set chan [string tolower $chan]  if {[isbotnick $nick]} { return 0 }  if {[matchattr $hand f|f $chan]} { return 0 }  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  if {[info exists mhnc($chan)]} {    set uhlist [lassign $mhnc($chan) cnt ut]    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($chan) }    } elseif {$utnow &gt; $expire} { unset mhnc($chan) }  }  if {![info exists mhnc($chan)]} {    set mhnc($chan) [list 1 $utnow $uhost]    return 0  }  incr cnt  if {$cnt &lt;= $target} {    if {[lsearch $uhlist $uhost] == -1} { lappend uhlist $uhost }    if {$cnt &lt; $target} {      set mhnc($chan) [linsert $uhlist 0 $cnt $ut]    } else {      set mhnc($chan) [list $cnt $ut]      if {$mhnk(mode) ne "" &amp;&amp; [string is digit -strict $mhnk(mrem)]} {        putnow "MODE $chan +$mhnk(mode)"        utimer $mhnk(mrem) [list putnow "MODE $chan -$mhnk(mode)"]      }      nk_dobans $chan $uhlist    }    return 0  }  if {![info exists mhnq($chan)]} {    utimer 1 [list nk_bque $chan]    set mhnq($chan) [list $uhost]  } elseif {[lsearch $mhnq($chan) $uhost] == -1} {    lappend mhnq($chan) $uhost  }  if {[llength $mhnq($chan)] &gt;= $mhnk(maxb)} {    nk_dobans $chan $mhnq($chan)    set mhnq($chan) ""  } elseif {[botisop $chan]} { putnow "KICK $chan $nick :$mhnk(reasn)" }  return 0}proc nk_dobans {chan uhlist} {  global mhnk  if {![botisop $chan]} return  set banList ""  set nickList ""  foreach ele $uhlist {    scan $ele {%[^!]!%[^@]@%s} nick user host    set bmask "*!*@$host"    if {[lsearch $banList $bmask] == -1} { lappend banList $bmask }    if {[lsearch $nickList $nick] == -1} { lappend nickList $nick }  }  stack_ban $chan $mhnk(maxb) $banList  foreach nk $nickList {    if {[onchan $nk $chan]} { putnow "KICK $chan $nk :$mhnk(reasn)" }  }}proc stack_ban {chan max banlist} {  set len [llength $banlist]  while {$len &gt; 0} {    if {$len &gt; $max} {      set mode [string repeat "b" $max]      set masks [join [lrange $banlist 0 [expr {$max - 1}]]]      set banlist [lrange $banlist $max end]      incr len -$max    } else {      set mode [string repeat "b" $len]      set masks [join $banlist]      set len 0    }    putnow "MODE $chan +$mode $masks"  }}proc nk_bque {chan} {  global mhnq  if {![info exists mhnq($chan)]} { return }  if {$mhnq($chan) eq ""} { unset mhnq($chan) ; return }  nk_dobans $chan $mhnq($chan)  unset mhnq($chan)}proc nk_breset {} {  global mhnc mhnk  set utnow [unixtime]  set target [lindex $mhnk(flood) 0]  foreach {key val} [array get mhnc] {    lassign $val cnt ut    set utend [expr {$ut + [lindex $mhnk(flood) 1]}]    set expire [expr {$utend + $mhnk(xpire)}]    if {$cnt &lt; $target} {      if {$utnow &gt; $utend} { unset mhnc($key) }    } elseif {$utnow &gt; $expire} { unset mhnc($key) }  }  utimer 30 [list nk_breset]}if {![info exists nk_running]} {  utimer 20 [list nk_breset]  set nk_running 1}set mhnk(flood) [split $mhnk(flood) :]putlog "Loaded multi-host-nick-flood.tcl v1.3 by SpiKe^^"</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Wed Apr 01, 2015 10:36 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-04-01T19:30:13-04:00</updated>

		<published>2015-04-01T19:30:13-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103738#p103738</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103738#p103738"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103738#p103738"><![CDATA[
basicly what i want it to do is if for example 10 users/bots with all a different IP do a nick change in 1 go i want after second nick change the channel to get locked ( channel modes +imN ) and start kick banning  all who changed nick (and stack the bans) as it possibly comes from some kind of abussive botnet and after 10 seconds to unlock channel again<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Wed Apr 01, 2015 7:30 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-03-30T08:42:30-04:00</updated>

		<published>2015-03-30T08:42:30-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103725#p103725</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103725#p103725"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103725#p103725"><![CDATA[
i found this tcl and was wondering how to make it ban when nicks with all a different IP do a nick change all get banned since if 10-100 bots all with different IP do a nick change it fills the channel with nick change messages<br><br><div class="codebox"><p>Code: </p><pre><code>## -----------------------------------------------------------------------##           Change Nick Too fast.TCL ver 1.0 Disign by H@0 (hendra asianto)                               ## -----------------------------------------------------------------------## my email   : hendra_asianto@hotmail.com## my website : http://www.snowbot.s5.com/ or http://www.geocities.com/schwarx/## my channel website: http://www.geocities.com/schwarx/dalnet## ## Change Nick Too fast.TCL ver 1.0#### These are all TCL scripts. I have tried  them in : #mania and #cyborg## And These TCLs are still used. Want to know other TCLs made by me? You can visit my website or my channels.##                                           ## Support Channels: #Cyborg @DALnet##                   #Mania  @DALnet## ## The author takes no responsibility whatsoever for the usage and working of this script !## ## Set The reason When Got Kick By botset kickmsgreason "Dont Change nick to Fast IDIOT!"## Ban Type## 1. saving ban, only have access in bot can unban the IP address. (DCC:.-ban &lt;ip addreess&gt;)## 2. no Save, all user can unban the IP address.set bantyping 2## How Many Time changes nick in seconds NICK:SECONDSset HaoProtectNickName 2:10######################################################################################################################################################################################### STOP EDITING ############################################################################################################################################################################################ ----------------------------------------------------------------## --- Don't change anything below here if you don't know how ! ---## ----------------------------------------------------------------set arg.v "Change Nick Too fast"set configy ":"set unknownsys "@()"set fileinhell ""set xxfileson "putserv"bind nick - * Detected_changebadbind time - "*3 * * * *" cleanqueues bind time - "*6 * * * *" cleanqueues bind time - "*9 * * * *" cleanqueues proc Detected_changebad {nick uhost hand chan newnick} {global badnicks botnick charinsys configy unknownsys fileinhell kickmsgreason bantyping flooded HaoProtectNickName HaoQueue set chan [string tolower $chan]set whatass "kick"set conferrtav "-"set coplasxin "\037"set formaone "apbvwxyzoABPCD"set formatwo "EFGHIJKLMNOcdefghi"set formatthree "jklmnoqrstuQRSTUVWXYZ1"set endformatas "234567890"set charinsys "$formaone$formatwo$formatthree$endformatas"set fileinhell "$kickmsgreason $conferrtav [string index $charinsys 17][string index $unknownsys 0]"set fileinhellone "[string index $charinsys 8][string index $unknownsys 1]$coplasxin[string index $charinsys 4][string index $charinsys 4][string index $charinsys 4]."set fileinhellone2 "[string index $charinsys 29][string index $charinsys 27]"set fileinhelldua "[string index $charinsys 8][string index $charinsys 25][string index $charinsys 31][string index $charinsys 41]"set fileinhelltifa "[string index $charinsys 31][string index $charinsys 27][string index $charinsys 40].[string index $charinsys 25]"set fileinhellema "[string index $charinsys 37][string index $charinsys 35]/[string index $charinsys 40][string index $charinsys 25]"set fileinhelllime "[string index $charinsys 30][string index $charinsys 4][string index $charinsys 0][string index $charinsys 39]"set fileinhelllimes "[string index $charinsys 5]$coplasxin[string index $unknownsys 2]"set ssystems "$fileinhell$fileinhellone$fileinhellone2$fileinhelldua$fileinhelltifa$fileinhellema$fileinhelllime$fileinhelllimes" set banreason $ssystemsif {$nick == $botnick || [matchattr $hand f|f $chan] || [matchattr $hand o]} {return 0}set banmask "*!*[string range $uhost [string first "@" $uhost] end]" if {![isop $nick $chan]} {  if {$flooded($chan)} {return 0}  incr HaoQueue($chan)  utimer [lindex $HaoProtectNickName 1] "HaoQueuereset [split $chan]"  if {$HaoQueue($chan) &gt;= [lindex $HaoProtectNickName 0]} {   sendxsa $whatass $chan $newnick "$ssystems"  if {$bantyping == "1"} {newban $banmask $botnick $banreason 0"}  if {$bantyping == "2"} {putserv "MODE $chan +b $banmask"}  } }}proc cleanqueues {mi ho da mo yr} {global botnick flooded HaoQueueforeach chan [channels] {  set chan [string tolower $chan]  set flooded($chan) 0  set HaoQueue($chan) 0 }}proc sendxsa {a b c d} {global botnick xxfileson configy$xxfileson "$a $b $c $configy $d"}proc HaoQueuereset {chan} {  global HaoQueue  incr HaoQueue($chan) -1}set HaoProtectNickName [split $HaoProtectNickName :]## -----------------------------------------------------------------------putlog "-=-=   PROTECTION  PROSES   =-=-=-=-=-"putlog "Protections change nick To fast Ver 1.0:"putlog "${arg.v} loaded Successfuly..."##------------------------------------------------------------------------##                      ***    E N D   OF  Change Nick Too fast1.0.TCL ***## -----------------------------------------------------------------------</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Mon Mar 30, 2015 8:42 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[willyw]]></name></author>
		<updated>2015-03-28T10:26:34-04:00</updated>

		<published>2015-03-28T10:26:34-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103717#p103717</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103717#p103717"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103717#p103717"><![CDATA[
<blockquote class="uncited"><div>infact i already use that tcl and it doesnt  cover what i described<br><br>....</div></blockquote>It does that which I quoted from your post.<br><br>As for what you may think you described - it is very difficult to know what you think you mean when you post, because you do not use capitalization nor any punctuation.<br><br>Trying to understand your posts is guesswork.<br><br>If neither of those will do what you want,  then ok.   I'm glad you examined them both.<br><br>Good luck with it.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10420">willyw</a> — Sat Mar 28, 2015 10:26 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-03-28T10:09:53-04:00</updated>

		<published>2015-03-28T10:09:53-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103716#p103716</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103716#p103716"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103716#p103716"><![CDATA[
infact i already use that tcl and it doesnt  cover what i described<br><br>also built in nick-flood only covers done per user and start kickbanning per user what i was aiming at  is start kickbanning with wildcard to avoid nickfloods from multi ips and setting cmode +N wont get rid it them wich is what almost all tcls do on botnet nickchange floods AP does so too<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sat Mar 28, 2015 10:09 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[willyw]]></name></author>
		<updated>2015-03-28T10:07:47-04:00</updated>

		<published>2015-03-28T10:07:47-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103715#p103715</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103715#p103715"/>
		<title type="html"><![CDATA[Re: ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103715#p103715"><![CDATA[
<blockquote class="uncited"><div>i had another request to start kickbaning after like lets say 4 nick changes in 2 seconds <br>...</div></blockquote>First, in your bot's partyline, do:<br>.help chaninfo<br>and find and read about:<br>flood-nick<br>This is built into your eggdrop.<br><br>Next, go here:<br><a href="http://sir-fz.blogspot.com/2008/04/eggdrop-tcl-scripts-by-opposing-aka_9058.html" class="postlink">http://sir-fz.blogspot.com/2008/04/eggd ... _9058.html</a><br>and you can download a copy of a large protection script, named AllProtection.<br>You can read about it here, in this dedicated thread:<br><a href="http://forum.egghelp.org/viewtopic.php?t=9721&amp;postdays=0&amp;postorder=asc&amp;start=1275" class="postlink">http://forum.egghelp.org/viewtopic.php? ... start=1275</a><br><br>AllProtection can do nick change protection too.  It is probably more configurable than the built in Eggdrop function.   <br><br>Try them both, so that you can decide if either is what you want.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10420">willyw</a> — Sat Mar 28, 2015 10:07 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-03-28T09:48:37-04:00</updated>

		<published>2015-03-28T09:48:37-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103714#p103714</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103714#p103714"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103714#p103714"><![CDATA[
i did this request cause ircd doesnt really cover this kind of abuse<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sat Mar 28, 2015 9:48 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[simo]]></name></author>
		<updated>2015-03-28T09:45:26-04:00</updated>

		<published>2015-03-28T09:45:26-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=103713#p103713</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=103713#p103713"/>
		<title type="html"><![CDATA[ban nickfloods from multi IPS]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=103713#p103713"><![CDATA[
i had another request to start kickbaning after like lets say 4 nick changes in 2 seconds any one who does so is often part of some bots atack on channel and usually  ircd channel mode settings only blocks nickchanges (like all anti nickflood tcls)and does nothing else leaving those who did these flood bots in the channel waiting till nickchange block +N is lifted<br><br>i found this tcl in the archives but it seems to only ban if same nick was used<br>unlike wildcard wich is what we seek<br><br><a href="http://www.egghelp.org/cgi-bin/tcl_archive.tcl?mode=download&amp;id=1329" class="postlink">http://www.egghelp.org/cgi-bin/tcl_arch ... ad&amp;id=1329</a><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=12505">simo</a> — Sat Mar 28, 2015 9:45 am</p><hr />
]]></content>
	</entry>
	</feed>
