1

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

使用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"嗅探函数时,没有"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 数据类型必须是什么才能正确解析和工作???

4

2 回答 2

1

请参阅https://stackoverflow.com/a/55093154/5459467https://stackoverflow.com/a/58793945/5459467

您将需要使用IFACESutil 来访问 NetworkInterface 对象而不是其名称。

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

于 2019-11-15T18:45:23.743 回答
0

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

Linux:使用控制台中的命令: ip link获取名称

该值的示例是iface = "eth0"iface = "wlan0"

请参阅文档:https ://scapy.readthedocs.io/en/latest/usage.html#sniffing

于 2019-11-15T09:08:52.117 回答