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 许可证分发。