Python打造一款多线程端口扫描器
from socket import *
import threading
lock=threading.Lock() #線程鎖
num=0
def Scanner(host,port):
global num
try:
s=socket(AF_INET,SOCK_STREAM) #建立socket連接
s.connect((host,port)) #連接
lock.acquire() #加鎖
num+=1
print('Port %d open' % port) #打印開放端口
lock.release()#解鎖
s.close()#關閉socket連接
except:
return None
def main():
setdefaulttimeout(1) #設置socket超時時間
for n in range(1,76):
tt=[]
for p in range((n-1)*880,n*880):
t=threading.Thread(target=Scanner,args=('127.0.0.1',p)) #多線程掃描localhost 端口數
tt.append(t)
t.start() #啟動線程
for y in tt:
y.join()#在子線程完成運行之前,這個子線程的父線程將一直被阻塞。
print('掃描結束')
print('開放端口數為:%d' % (num))
if __name__=='__main__':
main() #啟動程序
?
總結
以上是生活随笔為你收集整理的Python打造一款多线程端口扫描器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学Java编程选择Java面授教学最有效
- 下一篇: websocket python爬虫_p