nmap.py
bind pub - !nmap port_scan
proc port_scan {nick uhost handle chan args} {
if {$args eq ""} {
putserv "PRIVMSG $chan : Hiba: Add meg a cél IP-t vagy tartományt! Syntax: !nmap <cél>"
return
}
putserv "PRIVMSG $chan : Scanning $args..."
set data_var [exec nmap $args 2>/dev/null]
set lines [split $data_var "\n"]
set open_ports []
foreach line $lines {
if {[regexp {(\d+/tcp\s+open\s+\S+)} $line match]} {
lappend open_ports $match
}
}
if {[llength $open_ports] > 0} {
set max_length 250
set message_prefix "Open ports for $args: "
set current_message $message_prefix
set messages []
foreach port $open_ports {
# Csatlakoztatás pipával | a portok közé
append current_message "$port | "
# Ellenőrizzük, hogy a karakterek száma meghaladja-e a maximális hosszt
if {[string length $current_message] > $max_length} {
lappend messages [string trimright $current_message "| "]
set current_message ""
}
}
# Ha maradt egy nem küldött üzenet, azt is küldjük el
if {[string length $current_message] > 0} {
lappend messages [string trimright $current_message "| "]
}
# Üzenetek elküldése
foreach msg $messages {
putserv "PRIVMSG $chan :$msg"
}
} else {
putserv "PRIVMSG $chan : No open ports found for $args."
}
putlog "<<$chan>> $nick used !nmap on $args"
}
putlog "!nmap command loaded successfully."