<?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/18830" />

	<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>2012-02-06T21:11:34-04:00</updated>

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

		<entry>
		<author><name><![CDATA[demetrius_reis]]></name></author>
		<updated>2012-02-06T21:11:34-04:00</updated>

		<published>2012-02-06T21:11:34-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=98723#p98723</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=98723#p98723"/>
		<title type="html"><![CDATA[Script PortCheck.tcl]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=98723#p98723"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>## DCC ## .portcheck &lt;host/ip&gt; &lt;port&gt; (Can be changed)  #### DCC ## !portcheck &lt;host/ip&gt; &lt;port&gt; (Can be changed)  ########### Checks weather or not the specified port is  ########### open on the specified host or ip.  ########### --------------------------------------------- ########### .chanset &lt;channel&gt; +portcheck  ########### Enables on-join port checking for a channel.  ############################################################## PUB ## !portcheck &lt;host/ip&gt; &lt;port&gt; (Can be changed)  ########### Checks weather or not the specified port is  ########### open on the specified host or ip.  ############################################################set portcheck_setting(flag) "-|-"set portcheck_setting(cmd_pub) "!portcheck"set portcheck_setting(cmd_dcc) "portcheck"set portcheck_setting(read) 1######################################################################### Enable on-join scanning? (If you don't wish to enable it, ignore any ## further settings) Scanning for a channel is enabled via .chanset     ## &lt;channel&gt; +portcheck.        #########################################################################set portcheck_setting(onjoin) 0########################################################################## Set the open ports to scan for when a user joins a monitored channel. ##########################################################################set portcheck_setting(ports) "2300 2400 28800 29000 47624 22 80" ###################################################################### Set the flag that makes a user exempt from on-join scanning here. ####################################################################### FLAG +E - REMOVIDA# set portcheck_setting(exemptflag) "+E"##################################################################### Place a server ban when on a user that joins a monitored channel ## if a banned port is found?    #####################################################################set portcheck_setting(autoban_svr) 0################################################################# Place a ban on the bot's banlist when on a user that joins a ## monitored channel if a banned port is found?       #################################################################set portcheck_setting(autoban_list) 0######################### Make the ban global? #########################set portcheck_setting(global) 0################################################################# Set the time to ban users for here. Set to 0 for a perm ban. #################################################################set portcheck_setting(bantime) 5############################################################# Send an op notice when a banned port is found on a user? #############################################################set portcheck_setting(onotice) 1#################################### Enable use of bold in DCC chat? ####################################set portcheck_setting(bold) 1############################################## Prefix "PORTCHECK:" in DCC chat messages? ##############################################set portcheck_setting(PORTCHECK:) 1##################### Code begins here #####################if {![string match 1.6.* $version]} {putlog "\002PORTCHECK:\002 \002ERRO CRÍTICO\002 PortCheck.tcl por REIS__"die "\002PORTCHECK:\002 \002ERRO CRÍTICO\002 PortCheck.tcl por REIS__"}bind pub $portcheck_setting(flag) $portcheck_setting(cmd_pub) portcheck_scan_pubbind dcc $portcheck_setting(flag) $portcheck_setting(cmd_dcc) portcheck_scan_dccbind join - * portcheck_onjoin_scansetudef flag portcheckproc portcheck_dopre {} {global portcheck_settingif {!$portcheck_setting(PORTCHECK:)} {return ""} elseif {!$portcheck_setting(bold)} {return "PORTCHECK: "} else {return "\002PORTCHECK:\002 "}}proc portcheck_onjoin_scan {nick uhost hand chan} {global portcheck_setting portcheck_chansif {($portcheck_setting(onjoin)) &amp;&amp; ($portcheck_setting(ports) != "")} {foreach i [channel info $chan] {if {([string match "+portcheck" $i]) &amp;&amp; ([botisop $chan])} {set host [lindex [split $uhost @] 1]foreach p $portcheck_setting(ports) {if {![catch {set sock [socket -async $host $p]} error]} {set timerid [utimer 15 [list portcheck_timeout_join $sock]]fileevent $sock writable [list portcheck_connected_join $nick $chan $sock $host $p $timerid]}}break}}}}proc portcheck_scan_pub {nick uhost hand chan text} {global portcheck_settingset host [lindex $text 0]set port [lindex $text 1]if {$port == ""} {putquick "PRIVMSG :Usage: $portcheck_setting(cmd_pub) &lt;seu-ip&gt; &lt;porta&gt;"} else {if {[catch {set sock [socket -async $host $port]} error]} {putquick "PRIVMSG $chan :O IP $host está com a porta \($port\) FECHADA! Ou o jogo não está criado"} else {set timerid [utimer 15 [list portcheck_timeout_pub $chan $sock $host $port]]fileevent $sock writable [list portcheck_connected_pub $chan $sock $host $port $timerid]}}}proc portcheck_scan_dcc {hand idx text} {global portcheck_settingset host [lindex $text 0]set port [lindex $text 1]if {$port == ""} {putdcc $idx "[portcheck_dopre]Usage: .$portcheck_setting(cmd_dcc) &lt;seu-ip&gt; &lt;porta&gt;"} else {if {[catch {set sock [socket -async $host $port]} error]} {putdcc $idx "[portcheck_dopre]O IP $host está com a porta \($port\) FECHADA! Ou o jogo não está criado"} else {set timerid [utimer 15 [list portcheck_timeout $idx $sock $host $port]]fileevent $sock writable [list portcheck_connected $idx $sock $host $port $timerid]}}}proc portcheck_connected {idx sock host port timerid} {killutimer $timeridif {[set error [fconfigure $sock -error]] != ""} {close $sockputdcc $idx "[portcheck_dopre]Conexão ao $host \($port\) Falhou. \([string totitle $error]\)"} else {fileevent $sock writable {}fileevent $sock readable [list portcheck_read $idx $sock $host $port]putdcc $idx "[portcheck_dopre]O IP $host está com a porta \($port\) ABERTA normalmente. Pronto para jogar!"}}proc portcheck_timeout {idx sock host port} {close $sockputdcc $idx "[portcheck_dopre]Conexão ao $host \($port\) Falhou."}proc portcheck_read {idx sock host port} {global portcheck_settingif {$portcheck_setting(read)} {if {[gets $sock read] == -1} {putdcc $idx "[portcheck_dopre]O IP $host está com a porta \($port\) FECHADA! Ou o jogo não está criado"close $sock} else {putdcc $idx "[portcheck_dopre]$host \($port\) &gt; $read"}} else {close $sock}}proc portcheck_connected_pub {chan sock host port timerid} {killutimer $timeridif {[set error [fconfigure $sock -error]] != ""} {close $sockputquick "PRIVMSG $chan :O IP $host está com a porta \($port\) FECHADA! Ou o jogo não está criado \([string totitle $error]\)"} else {fileevent $sock writable {}fileevent $sock readable [list portcheck_read_pub $chan $sock $host $port]putquick "PRIVMSG $chan :O IP $host está com a porta \($port\) ABERTA normalmente. Pronto para jogar!"}}proc portcheck_timeout_pub {chan sock host port} {close $sockputquick "PRIVMSG $chan :O IP $host está com a porta \($port\) FECHADA! Ou o jogo não está criado"}proc portcheck_connected_join {nick chan sock host port timerid} {global portcheck_setting botnickkillutimer $timeridif {[set error [fconfigure $sock -error]] != ""} {close $sock} else {fileevent $sock writable {}fileevent $sock readable [list portcheck_read_join $sock]if {$portcheck_setting(onotice)} {foreach i [chanlist $chan] {if {([isop $i $chan]) &amp;&amp; ($i != $botnick)} {putserv "PRIVMSG $i :A Porta $port foi encontrada aberta $nick's. \($host\)"}}}if {$portcheck_setting(autoban_svr)} {putserv "MODE $chan +b *!*@$host"putserv "KICK $chan $nick :One of the ports open on your host is banned."timer $portcheck_setting(bantime) [list portcheck_unsvrban $chan $host]} elseif {$portcheck_setting(autoban_list)} {if {$portcheck_setting(global)} {newban *!*@$host PortCheck "One of the ports open on your machine is banned." $portcheck_setting(bantime)} else {newchanban $chan *!*@$host PortCheck "One of the ports open on your machine is banned." $portcheck_setting(bantime)}}}}proc portcheck_timeout_join {sock} {close $sock}proc portcheck_read_join {sock} {close $sock}proc portcheck_read_pub {sock} {global portcheck_settingif {!$portcheck_setting(read)} {close $sock} elseif {[gets $sock read] == -1} {putquick "PRIVMSG $chan :Conexão ao Falhada ao $host \($port\). Socket Closed."close $sock}}proc portcheck_unsvrban {chan host} {putserv "MODE $chan -b *!*@$host"}</code></pre></div>Using this same script or another, there is the possibility of improving it?<br>The commands are always used, like this:! Portcheck + ip + port<br><br>There is the possibility of minimizing the command! Portcheck + ip<br>Thus, the eggdrop does paesquisa all ports automatically defined and gives a result which states or which ports are not working.<br><br>Or is there something already done?<br>thanks!<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=11312">demetrius_reis</a> — Mon Feb 06, 2012 9:11 pm</p><hr />
]]></content>
	</entry>
	</feed>
