简易版:
#author:Blood_Zero #coding:utf-8 import socket import sys PortList=[21,22,23,25,80,135] # host=sys.argv[1] for i in PortList: sock=socket.socket() sock.settimeout(2) try: sock.connect((host,i)) print "the port %d is open" %i except Exception: print "the port %d is not open" %i sock.close()
执行方法:python port_scan.py www.xx.com
多线程端口扫描:
#author:Blood_Zero #coding:utf-8 import socket import multiprocessing import sys host=sys.argv[1] PortList=[21,22,23,25,80,135] #定义端口扫描函数 def scan(port): port=(int(port)) sock=socket.socket() sock.settimeout(1) print "the port %d is scanning" %port try: sock.connect((host,port)) print "the server %s port %d is open" %(host,port) except Exception: print "the server %s port %d is not open" %(host,port) sock.close() # 主函数 if __name__=="__main__": thread=multiprocessing.Pool(processes=100) for i in PortList: thread.apply_async(scan(i)) thread.close()
执行方式 python port_scan.py www.xx.com
后续还会出很多加强版!