scapy - srp 没有将我的数据包发送到正确的网络接口

scapy - srp doesnt send my packet to the correct network interface

我在 windows 10 机器上工作,我正在为我正在做的一些项目使用 scapy。

当我使用嗅探功能从我的以太网接口嗅探数据包时,它按预期工作,但是当我使用 srp1 从同一接口发送数据包时,它通过我的 vEthernet 接口发送我的数据包,而不是通过我的物理以太网接口(因此数据包永远不会到达目的地)。

这是我的 sniff 与 srp1 对比代码:

a = sniff(count = 1, iface = "Ethernet")
p = srp1(pkt, iface = "Ethernet")

正如您在两个调用中看到的那样,我使用了 "Ethernet" 接口名称。

谁能告诉我该怎么做才能通过以太网而不是 vEthernet 发送我的数据包?

如果您打开 Scapy shell 并键入 IFACES(Windows 仅限 ATM),您将看到确切的接口列表。

然后您可以使用界面对象,而不是名称。 (请参阅 help(IFACES) 了解各种实用函数,例如 IFACES.dev_from_id()... 以获取它)。

示例:

from scapy.arch.windows import IFACES
a = IFACES.dev_from_id(5)
sr1(IP(dst="www.google.com")/ICMP(), iface=a)

另见