当我尝试使用 Scapy 从周围的无线网络获取 Rssi 信息时,出现一些错误。另外,我使用的是 ALFA-036NH,我的监控模式是开放的,操作系统是 Kali Linux。我使用以下代码:
from scapy.all import *
from datetime import datetime
import os
import signal
import sys
def PacketHandler(pkt) :
if pkt.haslayer(Dot11) :
if pkt.type == 0 and pkt.subtype == 8 :
if pkt.haslayer(Dot11Beacon) or pkt.haslayer(Dot11ProbeResp):
try:
extra = pkt.notdecoded
rssi = -(256 - ord(extra[-4:-3]))
except:
rssi = -100
print "WiFi signal strength:", rssi
sniff(iface="wlan0mon", prn = PacketHandler)
但是,所有网络都提供 -100 dbm。感谢您的关注。
请使用最新的 scapy github 版本(或 2.4.1+)重试。它改进了对 RSSI 的支持,现在可以通过
dBm_AntSignal
字段使用该功能(如果存在)。
pkt.dBm_AntSignal
您不需要您提供的功能。
PS:你在哪里找到这样的代码?你自己做的吗?谢谢