刚写了python扫描端口,发现扫描1-500端口就用了50多秒,时间太长。能不能扫描快点。
使用多线程开始扫描,看代码
#coding=utf-8
#python2.7
import socket
import thread
import time
ip=raw_input(unicode("请输入IP地址:","utf-8").encode("gbk"))
def scan(ip,port):
try:
s=socket.socket()
s.settimeout(0.1)
s.connect((ip,port))
print('%s>>>>>>>>>>>>open' % port)
s.close()
except:
pass
def portscan():
print(u'开始扫描端口'+5*'>>>>>>')
t=time.time()
for x in range(1,500):
thread.start_new_thread(scan,(ip,x))
time.sleep(0.03)
print(u'扫描端口完成用时 time:%f' % (time.time()-t))
if __name__=='__main__':
portscan()
代码截图:

看到时间,才明白线程的威力。

网友评论