如果AP使用scapy嗅探器,我有兴趣获取RSSI值。我正在使用sig_str = -(256-ord(packet.notdecoded[-4:-3]))
获取RSSI值。但是,我得到所有AP的-256。未解码的部分则为0.有人可以帮我解决这个问题吗?
PS:我已经引用了这篇相关文章。 https://stackoverflow.com/a/34118234/4804221
TIA!
答案 0 :(得分:0)
假设接口处于监视模式,并且分配了正确的通道。
以下示例将from pyspark.sql.functions import concat, col, lit, when
df_join= df1.join(df2,on='id',how='outer').when(isnull(df1.some_string1), ''). when(isnull(df2.some_string2),'').withColumn('new_column',concat(col('some_string1'),lit(''),col('some_string2'))).select('id','new_column')
配置为iface=wlan0
并收听monitor mode
channel=6
如果$ sudo ip link set wlan0 down
$ sudo iw dev wlan0 set type monitor
$ sudo ip link set wlan0 up
$ sudo iw dev wlan0 set channel 6
标头正确地一起嗅探,则dBm_AntSignal
可以从数据包中获得RSSI。
RadioTap
似乎from scapy.all import RadioTap
from scapy.all import sniff
# sniff a packet from the interface
pkt = sniff(iface="wlan0", count=1)
pkt = pkt[0]
# getting the RSSI
radiotap = pkt.getlayer(RadioTap)
rssi = radiotap.dBm_AntSignal
print("RSSI={}".format(rssi)) # RSSI=-84
在python2 scapy上不起作用,下面的示例将起作用。
dBm_AntSignal
希望这会有所帮助。