network scanner python
1.0.0
網路發現|路由追蹤 | TCP 和 UDP 連接埠掃描器
該程式列出了本機電腦中存在的所有可用接口,並使用 Scapy 來識別本機電腦 LAN 內可透過本機的每個非虛擬介面存取的所有線上電腦。為了實現這一點,該程式創建了一個封裝 ARP 封包的乙太網路幀。乙太網路封包的目標位址設定為廣播位址,而 ARP 封包則具有本機主機的子網路位址以及 CIDR 表示法。最後,Scapy 建立一個 ARP 封包列表,這些封包被廣播到子網路中的每個 IP 位址,並列印線上電腦的 MAC 和 IP 位址,這些電腦將回覆傳送回本機。
此traceroute程式接受來自使用者的目標IP位址或主機名,並識別來源和目標之間的所有中間機器的IP位址或可能的主機名稱。首先,工具會識別使用者是否輸入了 IP 位址或主機名,並相應地尋找對應的主機名稱或 IP 位址。接下來,它會建立一個封裝 UDP 封包的 IP 封包,該封包具有 33434 - 33464 範圍內的隨機目標連接埠以及隨機高編號來源連接埠。 IP 目標位址要麼由使用者直接提供,要麼使用使用者透過 Scapy 提供的主機名稱取得。將最大跳數設為20,並且TTL按照當前跳數增加,以便可以發現路徑中距離小於或等於20跳的所有中間機器。最後,它從一跳到下一跳發送和接收資料包,並報告回應資料包中存在的主機名稱和 IP 位址。如果資料包在 3 秒的預期逾時內未確認,則該資料包將再次發送。否則,將列印“*”。一旦收到來自目標的 ICMP 連接埠不可達訊息(類型 3),程式就會停止,這表示封包已到達目的地,並且目的地連接埠不再開啟。
usage: ./networkdiscovery.py [-h] [--version]
Network Discovery
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
usage: ./traceroute.py [-h] [--version] [--target TARGET]
Traceroute
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
--target TARGET Hostname or IP
usage: ./portscanner.py [-h] [--version] [--target TARGET] [--port PORT] [--tcp | --udp] [--verbose]
Port Scanner
optional arguments:
-h, --help show this help message and exit
--version Show Program's Version Number and Exit
--target TARGET Hostname or IP to scan
--port PORT Port [X] or Port Range [X-Y] to scan
--tcp TCP port scan (mutually exclusive with --udp)
--udp UDP port scan (mutually exclusive with --tcp)
--verbose Verbose output (Print all ports, not just open ports)
根據 MIT 許可證分發。