如何获取连接的接入点的 MAC 地址?
How to get MAC address of connected Access point?
我正在使用 Scapy 嗅探接入点 (AP) 信标数据包并获取所有 AP 信标数据包,它是 AP 附近的 MAC 地址,但我需要确切的 MAC 已连接 AP 的地址 然后如何仅嗅探已连接的 AP 信标帧 或 如何使用 scapy [=15 过滤已连接的 AP 信标帧=]或任何替代想法。
*我在 python 2.7
假设信标帧称为pkt。 pkt.addr1 是目的地 MAC,pkt.addr2 是源 MAC,pkt.addr3 是 AP 的 MAC 地址。你可以这样写:
from scapy.all import *
def ap_mac(pkt):
if pkt.haslayer(Dot11)
if pkt.type == 0 and pkt.subtype == 8:
print('SSID: '+%s+' MAC:'+%s)(pk.info,pkt.addr3)
else: pass
else: pass
sniff(prn=ap_mac)
从信标帧中打印出所有 AP MAC。然后你可以使用类似的东西:
from scapy.all import *
def sniff_ap(pkt):
if pkt.haslayer(Dot11):
if pkt.add3 == 'xx.xx.xx.xx.xx.xx': ## AP MAC
print(pkt.summary())
else: pass
else: pass
sniff(prn=sniff_ap)
这是一个很好的 link 回复:信标帧。 https://www.4armed.com/blog/forging-wifi-beacon-frames-using-scapy/
我选择替代方法,即在 python 程序中使用命令
代码片段
def Check_connected_ap():
cmd =["nmcli -f BSSID,ACTIVE dev wifi list | awk ' ~ /yes/ {print }'"]
address = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = address.communicate()
print out
我正在使用 Scapy 嗅探接入点 (AP) 信标数据包并获取所有 AP 信标数据包,它是 AP 附近的 MAC 地址,但我需要确切的 MAC 已连接 AP 的地址 然后如何仅嗅探已连接的 AP 信标帧 或 如何使用 scapy [=15 过滤已连接的 AP 信标帧=]或任何替代想法。
*我在 python 2.7
假设信标帧称为pkt。 pkt.addr1 是目的地 MAC,pkt.addr2 是源 MAC,pkt.addr3 是 AP 的 MAC 地址。你可以这样写:
from scapy.all import *
def ap_mac(pkt):
if pkt.haslayer(Dot11)
if pkt.type == 0 and pkt.subtype == 8:
print('SSID: '+%s+' MAC:'+%s)(pk.info,pkt.addr3)
else: pass
else: pass
sniff(prn=ap_mac)
从信标帧中打印出所有 AP MAC。然后你可以使用类似的东西:
from scapy.all import *
def sniff_ap(pkt):
if pkt.haslayer(Dot11):
if pkt.add3 == 'xx.xx.xx.xx.xx.xx': ## AP MAC
print(pkt.summary())
else: pass
else: pass
sniff(prn=sniff_ap)
这是一个很好的 link 回复:信标帧。 https://www.4armed.com/blog/forging-wifi-beacon-frames-using-scapy/
我选择替代方法,即在 python 程序中使用命令
代码片段
def Check_connected_ap():
cmd =["nmcli -f BSSID,ACTIVE dev wifi list | awk ' ~ /yes/ {print }'"]
address = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = address.communicate()
print out