Python实现端口扫描
生活随笔
收集整理的這篇文章主要介紹了
Python实现端口扫描
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是端口掃描
定義:對一段端口或指定的端口進行掃描。
目的:通過掃描結果可以知道一臺計算機上都提供了哪些服務,然后就可以通過所提供的這些服務的己知漏洞就可進行攻擊。
原理:當一個主機向遠端一個服務器的某一個端口提出建立一個連接的請求,如果對方有此項服務,就會應答,如果對方未安裝此項服務時,即使你向相應的端口發出請求,對方仍無應答。
利用:對所有熟知端口或自己選定的某個范圍內的熟知端口分別建立連接,并記錄下遠端服務器所給予的應答,便可知道哪些端口是開放的。
?
最強端口掃描神器:Nmap:https://nmap.org/
Python Socket實現端口掃描器
原理:socket.connect_ex((ip, port)),端口開放則返回0,否則返回錯誤代碼
from os import name import threading from socket import * import tqdm # 進度條,可自行加上lock = threading.Lock() ? ? # 確保 多個線程在共享資源的時候不會出現臟數據 openNum=0 ? ? ? ? ? ? ? ? ? # 端口開放數量統計 threads=[] ? ? ? ? ? ? ? ? ? # 線程池def portscanner(host,port):global openNumtry:s=socket(AF_INET,SOCK_STREAM)s.connect((host,port))lock.acquire()openNum+=1print(f"{port} open")lock.release()s.close()except:passdef main(ip,ports=range(65535)): ? # 設置 端口缺省值0-65535setdefaulttimeout(1)for port in ports:t=threading.Thread(target=portscanner,args=(ip,port))threads.append(t)t.start()for t in threads:t.join()print(f"PortScan is Finish ,OpenNum is {openNum}") ?if __name__ == '__main__':ip='10.0.11.11'# main(ip,[22,101,8080,8000]) ? ? ? # 輸入端口掃描main(ip) ? ? ? ? ? ? ? ? ? ? ? ? ? # 全端口掃描總結
以上是生活随笔為你收集整理的Python实现端口扫描的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费资源下载
- 下一篇: 专业数字功放工作原理以及应用电路介绍