本文將介紹如何使用Python的socket模塊來實現一個簡單的端口掃描工具。該工具可以對指定主機的指定端口號範圍進行掃描,從而判斷哪些端口處於打開狀態。
在介紹實現之前,我們先來看一下將要用到的socket方法。
sock = socket.socket (socket_family, socket_type)
創建一個socket對象
sock = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
創建一個socket流,其中常用的枚舉值包括:
AF_INET:IPv4
SOCK_STREAM:TCP
SOCK_DGRAM:UDP
gethostbyname("host")
將一個主機名轉換成IP地址
sock.connect_ex((remoteServerIP, port))
連接到給定地址和端口
腳本的原理非常簡單,就是遍歷指定範圍內的所有端口,並嘗試建立連接。如果連接成功,就打印一條日誌。
解析輸入參數:
獲取主機IP:
主循環:
全部代碼:
運行結果:
獲取完整代碼,請訪問: https://github.com/code-talk/port-scanner
雖然這個腳本非常簡單,但是隻要大家有足夠的想象力,就可以在此基礎上做出更強大的功能。
好了,今天就介紹到這裡,歡迎小夥伴們留言評論。