我试图在Ubuntu上使用替罪羊做一个简单的wifi嗅探器,但是当我试图运行应用程序时,我遇到了以下问题:
Undefined variable 'Dot11Beacon'
Undefined variable 'Dot11Elt'现在,我尝试运行以下教程中的代码:https://www.shellvoide.com/python/how-to-code-a-simple-wireless-sniffer-in-python/
因为上面的错误,它很简单,不起作用。我正在使用Python 3和最新版本的替罪羊,通过pip安装。
即使它与本教程中的内容相同,下面是我使用的代码的部分:
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))发布于 2020-01-11 11:35:04
您的问题与https://stackoverflow.com/a/53402404/5459467相同,在PyCharm和Visual中也是如此。看看我的答案。
解决方案是从相关的代客文件中导入任何您需要的内容,而不使用所有这些文件。这是更清洁,但更长的时间。或者您可以在IDE中使用“添加异常”,如果您不是在寻找干净的东西。
发布于 2020-01-11 10:28:21
如果编译器说变量是未定义的,那么不使用*在库中定义它们。这里使用from scapy.all import (Dot11,Dot11Beacon,Dot11Elt)而不是from scapy.all import *
https://stackoverflow.com/questions/59693107
复制相似问题