【问题标题】:Scapy Sniff 'iface' attribute data typeScapy Sniff 'iface' 属性数据类型
【发布时间】:2019-11-13 17:22:51
【问题描述】:

在 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"放入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-3.x scapy variable-types


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 2022-10-25
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多