import os import net fn logo() { println(" ▄▄▄· ▄▄▄ ▄▄▄▄▄ .▄▄ · ▄▄· ▄▄▄· ▐ ▄ ▐ ▄ ▄▄▄ .▄▄▄ ") println("▐█ ▄█▪ ▀▄ █·•██ ▐█ ▀. ▐█ ▌▪▐█ ▀█ •█▌▐█•█▌▐█▀▄.▀·▀▄ █·") println(" ██▀· ▄█▀▄ ▐▀▀▄ ▐█.▪ ▄▀▀▀█▄██ ▄▄▄█▀▀█ ▐█▐▐▌▐█▐▐▌▐▀▀▪▄▐▀▀▄ ") println("▐█▪·•▐█▌.▐▌▐█•█▌ ▐█▌· ▐█▄▪▐█▐███▌▐█ ▪▐▌██▐█▌██▐█▌▐█▄▄▌▐█•█▌") println(".▀ ▀█▄▀▪.▀ ▀ ▀▀▀ ▀▀▀▀ ·▀▀▀ ▀ ▀ ▀▀ █▪▀▀ █▪ ▀▀▀ .▀ ▀") } fn code(){ mut remote_ip := " " if os.args.len < 2 { remote_ip = '127.0.0.1' } else { remote_ip = os.args[1] } ports := {'http' : 80, 'https' : 443, 'ftp' : 21, 'ssh' : 22,'telnet' : 23, 'dns' : 53, 'smtp' : 25 , 'ipp' : 631, 'dhcp1' : 67, 'dhcp2' : 68, 'tftp' : 69, 'pop' : 110, 'ntp' : 123, 'imap' : 143, 'snmp1' : 161, 'snmp2' : 162, 'bgp' : 179, 'ldap' : 389, 'ldaps' : 636, 'ftps1' : 989, 'fpts2' : 990} for key, value in ports { mut conn := net.dial_tcp("$remote_ip:$value") or { continue } if ip := conn.peer_ip() { println("[+] Port $value for $key is open") } else { } conn.close() or {} } } fn main() { logo() code() }