This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

PortChek !portCheck

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
R
RoKiTo
Voice
Posts: 17
Joined: Thu Jul 22, 2021 3:07 pm

PortChek !portCheck

Post by RoKiTo »

Sorry for the translation, but I can't find this type of tcl anywhere, except for one that is manual, but the join does that job of looking for it, as I'm not an expert in this, I hope TCL gods help me

Code: Select all

9:03:58<Slup23>!portcheck 200.33.188.15
9:03:58<remote>wait...
9:04:01<remote>Found [IP: 200.33.188.15 /Ports Open: 21(ftp) - 80(http)]
User avatar
CrazyCat
Revered One
Posts: 1252
Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:

Post by CrazyCat »

Without source code, we cannot help you
R
RoKiTo
Voice
Posts: 17
Joined: Thu Jul 22, 2021 3:07 pm

Post by RoKiTo »

It's like this ... but of course it doesn't have the rest. but it does it in join and it is automatic .. but not manual. what good to contribute in this case, I can not ask for miracles. thanks for your help. :oops:





Code: Select all

set portcheck_setting(flag) "-|-"
set portcheck_setting(cmd_pub) ".port"
set portcheck_setting(cmd_dcc) "portcheck"
set portcheck_setting(read) 1
set portcheck_setting(onjoin) 0
set portcheck_setting(ports) "1080 21 23"
set portcheck_setting(exemptflag) "+E"
set portcheck_setting(autoban_svr) 0
set portcheck_setting(autoban_list) 0
set portcheck_setting(global) 0
set portcheck_setting(bantime) 5
set portcheck_setting(onotice) 1
set portcheck_setting(bold) 1
set portcheck_setting(PORTCHECK:) 1
bind pub $portcheck_setting(flag) $portcheck_setting(cmd_pub) portcheck_scan_pub
bind dcc $portcheck_setting(flag) $portcheck_setting(cmd_dcc) portcheck_scan_dcc
bind join - * portcheck_onjoin_scan
setudef flag portcheck
 
proc portcheck_dopre {} {
    global portcheck_setting
    if {!$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_chans
    if {($portcheck_setting(onjoin)) && ($portcheck_setting(ports) != "") && (![matchattr $hand $portcheck_setting(exemptflag)])} {
        foreach i [channel info $chan] {
            if {([string match "+portcheck" $i]) && ([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_setting
    set host [lindex $text 0]
    set port [lindex $text 1]
    if {$port == ""} {
#       putquick "NOTICE $nick :Usage: $portcheck_setting(cmd_pub) <host> <port>"
        putquick "PRIVMSG $chan :Usage: $portcheck_setting(cmd_pub) <host> <port>"
    } else {
        if {[catch {set sock [socket -async $host $port]} error]} {
            putquick "PRIVMSG $chan :\002(\002Port\002)\002: Connection to $host:$port was motherfucking refused "
        } 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_setting
    set host [lindex $text 0]
    set port [lindex $text 1]
    if {$port == ""} {
        putdcc $idx "[portcheck_dopre]Usage: .$portcheck_setting(cmd_dcc) <host> <port>"
    } else {
        if {[catch {set sock [socket -async $host $port]} error]} {
            putdcc $idx "[portcheck_dopre]Connection to $host \($port\) was refused "
        } 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 $timerid
    if {[set error [fconfigure $sock -error]] != ""} {
        close $sock
        putdcc $idx "[portcheck_dopre]Connection to $host \($port\) failed \([string totitle $error]\)"
    } else {
        fileevent $sock writable {}
        fileevent $sock readable [list portcheck_read $idx $sock $host $port]
        putdcc $idx "[portcheck_dopre]Connection to $host \($port\) accepted "
    }
}
proc portcheck_timeout {idx sock host port} {
    close $sock
    putdcc $idx "[portcheck_dopre]Connection to $host \($port\) timed out "
}
proc portcheck_read {idx sock host port} {
    global portcheck_setting
    if {$portcheck_setting(read)} {
        if {[gets $sock read] == -1} {
            putdcc $idx "[portcheck_dopre]EOF On Connection To $host \($port\). Socket Closed."
            close $sock
        } else {
            putdcc $idx "[portcheck_dopre]$host \($port\) > $read"
        }
    } else {
        close $sock
    }
}
proc portcheck_connected_pub {chan sock host port timerid} {
    killutimer $timerid
    if {[set error [fconfigure $sock -error]] != ""} {
        close $sock
        putquick "PRIVMSG $chan :\002(\002Port\002)\002: Connection to $host:$port motherfucking failed. \([string totitle $error]\)"
    } else {
        fileevent $sock writable {}
        fileevent $sock readable [list portcheck_read_pub $chan $sock $host $port]
        putquick "PRIVMSG $chan :\002(\002Port\002)\002: Connection to $host:$port accepted. :D "
    }
}
proc portcheck_timeout_pub {chan sock host port} {
    close $sock
    putquick "PRIVMSG $chan :\002(\002Port\002)\002: Connection to $host:$port timed out. :-( "
}
proc portcheck_connected_join {nick chan sock host port timerid} {
    global portcheck_setting botnick
    killutimer $timerid
    if {[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]) && ($i != $botnick)} {
                    putserv "NOTICE $i :Port $port was found open on $nick's host. \($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_setting
    if {!$portcheck_setting(read)} {
        close $sock
    } elseif {[gets $sock read] == -1} {
        putquick "PRIVMSG $chan :\002(\002Port\002)\002: EOF On Connection To $host:$port. Socket Closed."
        close $sock
    }
}
proc portcheck_unsvrban {chan host} {
    putserv "MODE $chan -b *!*@$host"
}
putlog "port.tcl loaded."  
User avatar
SpiKe^^
Owner
Posts: 831
Joined: Fri May 12, 2006 10:20 pm
Location: Tennessee, USA
Contact:

Post by SpiKe^^ »

Have you tried turning on the on-join function of that script?

Code: Select all

set portcheck_setting(onjoin) 1
SpiKe^^

Get BogusTrivia 2.06.4.7 at www.mytclscripts.com
or visit the New Tcl Acrhive at www.tclarchive.org
.
S
Spartan
Voice
Posts: 6
Joined: Fri Apr 29, 2022 10:19 pm

Hi

Post by Spartan »

this script is possible to be on connect to match nick ip and port from list port.txt and to send report on channel and is find 1 Ip matched with 1 port of list port.txt to stop and watch next Ip on connect when script si off to send report in channel


eanble/disable
!port on/off

exempt full ip or range ip
!lisport / !addport/!delport 79.103.* | 79.103.23.104

chanreport
Open-Port : Tommy with IP: 34.34.34.34 matched as open port: 35467 (http/https/sock4/sock5)


action-ban
and to gzline ip reason Your Ip seems to be Proxy

the original code here:

Code: Select all

######################################
## DCC .portchk <host/ip> <port>    ##
## PUB !port <host/ip> <port>       ##
##.chanset <channel> +portchk       ##
######################################

set portchk_setting(flag) ""
set portchk_setting(cmd_pub) "!port"
set portchk_setting(cmd_dcc) "portchk"
set portchk_setting(read) 1
set portchk_setting(onjoin) 1
set portchk_setting(ports) "21 22 23 25 53 80 81 110 113 135 137 138 139 143 443 445 1080 3128 3306 5900 6660 6661 6662 6663 6665 6666 6667 6668 6669 7000 8080 10000 31337 64501 65500 65501"
set portchk_setting(autoban_svr) 0
set portchk_setting(autoban_list) 0
set portchk_setting(global) 0
set portchk_setting(bantime) 5
set portchk_setting(onotice) 1
set portchk_setting(bold) 1
set portchk_setting(portchk:) 1

############################################################################
#   PLEASE DO NOT EDIT ANYTHING BELOW UNLESS YOU KNOW WHAT YOU ARE DOING   #
############################## Script Begin ################################

#if {![string match 1.8.* $version]} {
#	putlog "\002portchk:\002 \002CRITICAL ERROR\002 portchk.tcl requires eggdrop 1.6.x to run."
#	die "\002portchk:\002 \002CRITICAL ERROR\002 portchk.tcl requires eggdrop 1.6.x to run."
#}
bind pub $portchk_setting(flag) $portchk_setting(cmd_pub) portchk_scan_pub
bind dcc $portchk_setting(flag) $portchk_setting(cmd_dcc) portchk_scan_dcc
bind join - * portchk_onjoin_scan
setudef flag portchk

proc portchk_dopre {} {
	global portchk_setting
	if {!$portchk_setting(portchk:)} {
		return ""
	} elseif {!$portchk_setting(bold)} {
		return "portchk: "
	} else {
		return "\002portchk:\002 "
	}
}
proc portchk_onjoin_scan {nick uhost hand chan} {
	global portchk_setting
	if {($portchk_setting(onjoin)) && ($portchk_setting(ports) != "")} {
		foreach i [channel info $chan] {
			if {([string match "+portchk" $i]) && ([botisop $chan])} {
				set host [lindex [split $uhost @] 1]
				foreach p $portchk_setting(ports) {
					if {![catch {set sock [socket -async $host $p]} error]} {
						set timerid [utimer 15 [list portchk_timeout_join $sock]]
						fileevent $sock writable [list portchk_connected_join $nick $chan $sock $host $p $timerid]
					}
				}
				break
			}
		}
	}
}
proc portchk_scan_pub {nick uhost hand chan text} {
	global portchk_setting
	set host [lindex [split $text] 0]
	set port [lindex [split $text] 1]
	if {$port == ""} {
		putquick "NOTICE $nick :Usage: $portchk_setting(cmd_pub) <host> <port>"
	} else {
		if {[catch {set sock [socket -async $host $port]} error]} {
			putquick "PRIVMSG $chan :15\[portchk4!15\] Connection to $host \($port\) was refused."
		} else {
			set timerid [utimer 15 [list portchk_timeout_pub $chan $sock $host $port]]
			fileevent $sock writable [list portchk_connected_pub $chan $sock $host $port $timerid]
		}
	}
}
proc portchk_scan_dcc {hand idx text} {
	global portchk_setting
	set host [lindex [split $text] 0]
	set port [lindex [split $text] 1]
	if {$port == ""} {
		putdcc $idx "[portchk_dopre]Usage: .$portchk_setting(cmd_dcc) <host> <port>"
	} else {
		if {[catch {set sock [socket -async $host $port]} error]} {
			putdcc $idx "[portchk_dopre]Connection to $host \($port\) was refused."
		} else {
			set timerid [utimer 15 [list portchk_timeout $idx $sock $host $port]]
			fileevent $sock writable [list portchk_connected $idx $sock $host $port $timerid]
		}
	}
}
proc portchk_connected {idx sock host port timerid} {
	killutimer $timerid
	set error [fconfigure $sock -error]
	if {$error != ""} {
		close $sock
		putdcc $idx "[portchk_dopre]Connection to $host \($port\) failed. \([string totitle $error]\)"
	} else {
		fileevent $sock writable {}
		fileevent $sock readable [list portchk_read $idx $sock $host $port]
		putdcc $idx "[portchk_dopre]Connection to $host \($port\) accepted."
	}
}
proc portchk_timeout {idx sock host port} {
	close $sock
	putdcc $idx "[portchk_dopre]Connection to $host \($port\) timed out."
}
proc portchk_read {idx sock host port} {
	global portchk_setting
	if {$portchk_setting(read)} {
		if {[gets $sock read] == -1} {
			putdcc $idx "[portchk_dopre]EOF On Connection To $host \($port\). Socket Closed."
			close $sock
		} else {
			putdcc $idx "[portchk_dopre]$host \($port\) > $read"
		}
	} else {
		close $sock
	}
}
proc portchk_connected_pub {chan sock host port timerid} {
	killutimer $timerid
	set error [fconfigure $sock -error]
	if {$error != ""} {
		close $sock
		putquick "PRIVMSG $chan :15\[portchk4!15\] Connection to $host \($port\) failed. \([string totitle $error]\)"
	} else {
		fileevent $sock writable {}
		fileevent $sock readable [list portchk_read_pub $chan $sock $host $port]
		putquick "PRIVMSG $chan :15\[portchk4!15\] Connection to $host \($port\) accepted."
	}
}
proc portchk_timeout_pub {chan sock host port} {
	close $sock
	putquick "PRIVMSG $chan :15\[portchk4!15\] Connection to $host \($port\) timed out."
}
proc portchk_connected_join {nick chan sock host port timerid} {
	global portchk_setting botnick
	killutimer $timerid
	set error [fconfigure $sock -error]
	if {$error != ""} {
		close $sock
	} else {
		fileevent $sock writable {}
		fileevent $sock readable [list portchk_read_join $sock]
		if {$portchk_setting(onotice)} {
			foreach i [chanlist $chan] {
				if {([isop $i $chan]) && ($i != $botnick)} {
					putserv "NOTICE $i :Port $port was found open on $nick's host. \($host\)"
				}
			}
		}
		if {$portchk_setting(autoban_svr)} {
			putserv "MODE $chan +b *!*@$host"
			putserv "KICK $chan $nick :One of the ports open on your host is banned."
			timer $portchk_setting(bantime) [list portchk_unsvrban $chan $host]
		} elseif {$portchk_setting(autoban_list)} {
			if {$portchk_setting(global)} {
				newban *!*@$host portchk "One of the ports open on your machine is banned." $portchk_setting(bantime)
			} else {
				newchanban $chan *!*@$host portchk "One of the ports open on your machine is banned." $portchk_setting(bantime)
			}
		}
	}
}
proc portchk_timeout_join {sock} {
	close $sock
}
proc portchk_read_join {sock} {
	close $sock
}
proc portchk_read_pub {sock} {
	global portchk_setting
	if {!$portchk_setting(read)} {
		close $sock
	} elseif {[gets $sock read] == -1} {
		putquick "PRIVMSG $chan :EOF On Connection To $host \($port\). Socket Closed."
		close $sock
	}
}
proc portchk_unsvrban {chan host} {
	putserv "MODE $chan -b *!*@$host"
}

putlog "Portchk Addon TCL Modifed By MoBi ? Succesfully Loaded..."

s
simo
Revered One
Posts: 1090
Joined: Sun Mar 22, 2015 2:41 pm

Post by simo »

if im not mistaken i believe HOPM checks ports as well perhaps thats a better option as it can handle a lot of connecting clients thats what is was designed for
Post Reply