Scapy Sniff 'iface' 属性数据类型

Scapy Sniff 'iface' attribute data type

使用 scapy 2.4.3(使用 "pip install --pre scapy[complete]" 安装在 pip 上)与 Python 3.7.2

使用scapy中的sniff函数,进入iface参数的数据类型应该是什么?我使用 scapy.all.show_interfaces() 函数列出已知接口,这是输出:

INDEX  IFACE                                           IP               MAC
13     Realtek PCIe GBE Family Controller              169.254.142.162  HewlettP:47:07:dc
10     Microsoft Wi-Fi Direct Virtual Adapter          169.254.246.19   Azurewav:80:86:ff
7      Realtek RTL8723DE 802.11b/g/n PCIe Adapter      192.168.0.7      Azurewav:80:86:ff
-1     [Unknown] Adapter for loopback traffic capture  None             ff:ff:ff:ff:ff:ff

当我将"Realtek PCIe GBE Family Controller"放入sniff函数时,没有"scapy.error.Scapy_Exception: Interface is invalid (no pcap match found) !"错误,所以我知道接口是有效的。但是,我收到此错误:AttributeError: 'str' object has no attribute 'is_invalid'。如果我将 iface 属性更改为 scapy.all.ifaces.dev_from_index(-1),则错误为 OSError: exception: access violation reading 0x00000000000002A8。 iface 数据类型必须是什么才能正确解析并工作???

它是一个 python str ,包含接口名称。

Linux: 在控制台中使用命令:ip link for the names

值的示例为 iface = "eth0"iface = "wlan0"

查看文档:https://scapy.readthedocs.io/en/latest/usage.html#sniffing

参见 and

您将需要使用 IFACES 实用程序来访问 NetworkInterface 对象而不是其名称。

如果这不能解决问题,请确保您安装了最新版本的 npcap,尝试使用不同的界面(可能不是 -1 界面)。