我正在尝试编写用于端口扫描的python脚本。如何编写代码以打印哪个服务在哪个端口上运行,例如在nmap中?
这是我的代码:
#!usr/bin/python
import socket
from datetime import datetime
import sys
try:
host = raw_input("Enter the host to scan - ")
ip = socket.gethostbyname(host)
list = []
print "Scanning", ip, "for open ports..."
start_time = datetime.now()
for port in range (65535):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if sock.connect_ex((ip, port))==0:
list.append(port)
sock.close()
except KeyboardInterrupt:
print "\nYou pressed Ctrl+C."
sys.exit()
except socket.gaierror:
print "Hostname could not be resolved. Exiting."
sys.exit()
except socket.error:
print "Couldn't connect to host. Connection refused."
sys.exit()
stop_time = datetime.now()
total = stop_time - start_time
values = ', '.join(str(v) for v in list)
print "The following ports are open -", values
print "Scanning Completed in", total, "seconds!"
任何帮助表示赞赏。谢谢!