记得上次写了一个python多线程扫描端口,可是不太理想,花费的时间还是太长。
参考各种资料,让速度加快是我的追求。
#coding=utf-8
import socket
import threading
import time
ip=raw_input(unicode("请输入IP地址:","utf-8").encode("gbk"))
socket.setdefaulttimeout(1)
lock = threading.Lock()
threads=[]
def scan(ip,port):
try:
#time.sleep(0.01)
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((ip, port))
lock.acquire()
print('[+] %s %d open' % (ip,port))
lock.release()
s.close()
except:
pass
def portscan():
for p in range(0, 65535):
t=threading.Thread(target=scan, args=(ip,p))
threads.append(t)
t.start()
for t in threads:
t.join()
if __name__ == '__main__':
print(u'开始扫描%s>>>>>>'% ip)
tt=time.time()
portscan()
print(u'扫描端口完成用时%f' % (time.time()-tt))
这个python的缩进还真是问题。

扫描65535所有端口啊。看这时间

网友评论