我在Windows 10机器上工作,并且正在为我正在执行的某些项目使用scapy。
当我使用sniff函数从我的以太网接口嗅探数据包时,它按预期工作,但是当我使用srp1从同一接口发送数据包时,它通过vEthernet接口而不是物理以太网接口发送数据包(因此数据包永远不会到达目的地。
这是我的嗅探代码与srp1的代码:
a = sniff(count = 1, iface = "Ethernet")
p = srp1(pkt, iface = "Ethernet")
在两个呼叫中都可以看到,我使用“以太网”接口名称。
有人可以告诉我该怎么做,这样我的数据包将通过以太网而不是vEthernet发送?
答案 0 :(得分:2)
如果打开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)