Python scapy arp 请求在内部网络的 virtualbox 中不起作用。为什么?

问题描述 投票:0回答:1
answered, unanswered = srp(Ether("ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.3.0/24"), timeout=1)
print(answered.summary())

运行上面的代码在 VirtualBox 的内部网络上没有给出任何结果。

但是,运行类似

netdiscover -r 192.168.3.0/24
的程序可以很好地检测虚拟机及其相应的 MAC 地址。 当使用其他网络设置(例如 VirtualBox 中的 NAT 网络)时,该代码也可以工作,因此看起来这是内部网络设置的问题。

有没有办法使用内部网络来完成这项工作?

python virtualbox scapy arp
1个回答
0
投票

我花了一天时间试图解决这个问题,一旦我发布了一个问题,我就找到了解决方案。这是如果有人有类似问题的话。

这个问题与内部网络无关,所以我的理论是错误的,我只需指定网络接口。下面的代码按预期工作。

answered, unanswered = srp(Ether("ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.3.0/24"), timeout=1, iface="eth0")
print(answered.summary())

我通过在命令行中使用“arping”来解决这个问题,并注意到我必须指定网络接口,因此尝试使用 scapy 并且它有效。有趣的是所有教程或人工智能生成的代码都不包含界面。

© www.soinside.com 2019 - 2024. All rights reserved.