小编use*_*941的帖子

从Python访问802.11无线管理帧

从Linux上的Python我想嗅探802.11管理'探测请求'帧.这可以从Scapy那样:

# -*- coding: utf-8 -*-
from scapy.all import *

def proc(p):
        if ( p.haslayer(Dot11ProbeReq) ):
                mac=re.sub(':','',p.addr2)
                ssid=p[Dot11Elt].info
                ssid=ssid.decode('utf-8','ignore')
                if ssid == "":
                        ssid="<BROADCAST>"
                print "%s:%s" %(mac,ssid)

sniff(iface="mon0",prn=proc)
Run Code Online (Sandbox Code Playgroud)

或者像这样的tshark:

tshark -n -i mon0 subtype probereq -R 'wlan.fc.type_subtype eq 4' -T fields -e wlan.sa -e wlan_mgt.ssid
Run Code Online (Sandbox Code Playgroud)

我们可以重定向来自tshark的输出,并用一些Python啜饮它(不是很漂亮,但它可以工作).

但是,这两个选项都有GPL许可,这使得潜在的商业项目变得棘手.因此,我正试图在Python中找出针对此特定问题的"较低级别"解决方案.来自Google我已经设法找出了两个可能的方向:

  1. Pcap库:似乎有三个可用于Python的pcap库: pylibpcap,pypcappcapy.我不太确定如何将上述功能纳入这些功能.任何示例代码或解决方案都会很棒.

  2. 原始套接字:PF_PACKET:"数据包套接字用于在设备驱动程序(OSI第2层)级别接收或发送原始数据包.它们允许用户在物理层顶部的用户空间中实现协议模块."

听起来这可能是另一种选择,完全绕过pcap.我听说过这可能是一个更好的方法,消除了pcap库的开销.不过,我不知道从哪里开始解决这个问题.

任何帮助解决这个问题将不胜感激.

python linux scapy wifi tshark

7
推荐指数
1
解决办法
7728
查看次数

标签 统计

linux ×1

python ×1

scapy ×1

tshark ×1

wifi ×1