如何使用nmap列出子网中的地址是否使用Python处于活动状态

2024-04-25 22:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道nmap能够ping扫描并输出一个只有活动IP的列表,但是我正在搜索网络,以确定如何使用CIDR符号列出一个IP是否处于活动状态。(即1.1.1.1/32,如果地址处于活动或非活动状态,则列出)。我也一直在调查netaddr和scapy,但我不知道该怎么做。我正试图使用python脚本来实现这一点。在

谢谢


Tags: ip网络脚本列表地址符号pingnmap
2条回答

在Python中最好使用Scapy。您可以轻松地创建ping(ICMP Echo Request)数据包,将其目标设置为CIDR范围,然后“发送”它,这将按顺序发送到该范围内的每个地址:

>>> p = IP(dst="10.0.0.0/30") / ICMP()
>>> sr(p,timeout=5)
Begin emission:
Finished to send 4 packets.
**..................
Received 20 packets, got 2 answers, remaining 2 packets
(<Results: TCP:0 UDP:0 ICMP:2 Other:0>, <Unanswered: TCP:0 UDP:0 ICMP:2 Other:0>)

获取sr函数的输出(或您选择用于发送数据包的任何方法)由您自己决定。获取地址的另一种方法是使用^{}库,它有一个可以在CIDR网络上迭代的IPv4Network对象。在

最后,我必须指出Nmap可以接受CIDR格式的目标规范(例如192.168.1.0/24example.com/2610.0.0.0/8,等等)

看起来有一个名为python-iptools的开源库,它能够从CIDR符号转换成IP范围。在

相关问题 更多 >