2

我正在创建一个简单的函数,它应该收集我网络中所有设备的 MAC 地址。

import scapy.all as scapy

def network_scan(ip):
   arp_request = scapy.ARP(pdst=ip)
   print(arp_request.summary())

network_scan("10.0.2.1/24")

此 ARP 请求返回“有 ?? 的 ARP 说 ??”

但是当我尝试请求单个 IP 的 MAC 地址时,效果很好:

network_scan("10.0.2.1")

单IP输出:有10.0.2.1的ARP说myIP

4

1 回答 1

0

您传递给层 ARP 的值就可以了。但是您的代码没有向网络发送/接收任何数据包。

你可以在这里看到完整的解决方案:https ://www.thepythoncode.com/article/building-network-scanner-using-scapy

现在,为什么它似乎可以与您的 IP 一起使用?arp_request.summary() 尝试解析 IP 并看到它是你的。但扫描部分仍然需要发送数据包

于 2020-07-17T13:59:31.983 回答