Scapy:未定义变量'Dot11Beacon'和'Dot11Elt'

问题描述 投票:0回答:2

我正在尝试在Ubuntu上使用scapy做一个简单的wifi嗅探器,但是当我尝试运行该应用程序时遇到了以下问题:

Undefined variable 'Dot11Beacon' 
Undefined variable 'Dot11Elt'

现在,我尝试在以下教程中运行代码:https://www.shellvoide.com/python/how-to-code-a-simple-wireless-sniffer-in-python/

并且由于上述错误,简单的方法不起作用。我正在使用通过pip安装的Python 3和最新版本的scapy。

即使与本教程中的相同,这也是我正在使用的部分代码:

from scapy.all import *

sniff(iface=interface, prn=process_packet)

def process_packet(pak):
    if pak.haslayer(Dot11Beacon):
        if pak.getlayer(Dot11).addr2 not in F_bssids:
            F_bssids.append(pak.getlayer(Dot11).addr2)
            ssid = pak.getlayer(Dot11Elt).info
            if ssid == '' or pak.getlayer(Dot11Elt).ID != 0:
                print("Hidden Network Detected")
            print("Network Detected: %s" % (ssid))
python python-3.x scapy
2个回答
0
投票

如果编译器说未定义变量,请在不使用*的情况下在库中对其进行定义。可以使用from scapy.all import (Dot11,Dot11Beacon,Dot11Elt)代替from scapy.all import *


0
投票

您遇到的问题与https://stackoverflow.com/a/53402404/5459467在PyCharm和Visual Studio中也是如此。看看我在那里的答案。

解决方法是从相关的scapy文件中导入所需的任何内容,而无需全部使用。它比较干净,但是需要更长的时间。或者,如果您不想要干净的东西,也可以在IDE中使用“添加例外”。

© www.soinside.com 2019 - 2024. All rights reserved.