Scapy Sniff'iface'属性数据类型

时间:2019-11-13 17:22:51

标签: python-3.x scapy variable-types

在python 3.7.2中使用scapy 2.4.3(使用"pip install --pre scapy[complete]"安装在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数据类型必须是什么才能正确解析并起作用?

2 个答案:

答案 0 :(得分:1)

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

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

如果这不能解决问题,请确保已安装最新版本的npcap,并尝试使用其他接口(可能不是-1)。

答案 1 :(得分:0)

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

Linux: 在控制台中使用以下命令:ip link作为名称

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

查看文档:{​​{3}}