wifi数据包解析_解析WiFi数据包(libpcap)

wifi数据包解析_解析WiFi数据包(libpcap)我一直在努力使OpenWRT路由器将WiFi探测器请求发送到MySQL数据库(它存储每个探测请求数据包的MAC地址和RSSI信息以及其他路由器特定的数据).在对libpcap进行了大量的研究之后,我已经能够拼凑一个基本的小程序,只需使用过滤器表达式(‘wlansubtypeprobe-req’)在监视器界面(mon0)上嗅探数据包,然后打印出原始数据包在十六进制.使用libpcap上可以在线获…

大家好,又见面了,我是你们的朋友全栈君。

我一直在努力使OpenWRT路由器将WiFi探测器请求发送到

MySQL数据库(它存储每个探测请求数据包的MAC地址和RSSI信息以及其他路由器特定的数据).

在对libpcap进行了大量的研究之后,我已经能够拼凑一个基本的小程序,只需使用过滤器表达式(‘wlan subtype probe-req’)在监视器界面(mon0)上嗅探数据包,然后打印出原始数据包在十六进制.使用libpcap上可以在线获得的信息,这部分是相当简单的.

现在这里是我被困:我如何解析WiFi包来检索我正在寻找的信息(RSSI和源MAC地址)?

要清楚,我不是要求代码来做(尽管我不会抱怨,如果你想提供一些:D).我只是在寻找一些指导,了解哪个字节是哪一个 – WiFi包路线图,如果你愿意的话.

有一些很好的教程,用于解析来自以太网的数据包,但是我无法找到任何帮助解析与WiFi有关的标题的东西.我认为这将是一个非常简单的过程 – 只需抓取RSSI和源MAC的相关字节 – 但是,再次,我还没有找到任何关于哪个字节的文档.

我知道这已经完成了,但我会说实话:在查看tcpdump的源代码时,我完全迷失了.

那么,有没有人知道如何解析WiFi数据包的好资源?

干杯

编辑:更具体答案

RSSI在RadioTap头文件中(在Linux上).将RSSI从数据包中拉出是非常简单的,使用radiotap-parser.c及其所依赖的文件(在与我链接的文件相同的目录中找到).如果任何人在使用radiootap-parser.c功能时遇到问题,请随时联系.

由于radiootap标头结构包含无线电标头(it_len)的长度,它是可变的,因此通过无线电功能放大器取出源MAC地址变得非常容易.由于我只解析具有固定长度的检测请求(检出17-17001),只是指向指向数据包的指针it_len 10(源MAC地址在MAC帧开始后的10个字节开始,其开始于无线电波头的末端).从该指针开始的6个字节是802.11帧中的addr2(再次参见第17页here).

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162470.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据结构之栈

    一标准库stack的使用(1)stack成员函数(2)示例二C++实现栈数组实现的栈,能存储任意类型的数据

    2021年12月19日
    61
  • centos7配置sftp_怎么修改服务器sftp端口

    centos7配置sftp_怎么修改服务器sftp端口CentOS7修改sftp端口修改sftp默认端口为12322vi/etc/ssh/ssh_config把Port22改成Port12322vi/etc/ssh/sshd_config把Port22改成Port12322修改之后重启servicesshdrestart

    2022年9月14日
    0
  • 如何判断二极管的极性_二极管的反向饱和电流

    如何判断二极管的极性_二极管的反向饱和电流三极管饱和状态的判断比如上图如何判断电路正常状态下(麦克风无声音)Q1饱和而不是Q2饱和?首先看Q1:因为R2=100R3所以电流的话R3是100倍的R2,但是8050放大系数是200倍以上,说明此时三极管已经无力再放大这个基极电流了,三极管处于饱和状态而后边Q2R3是R4的30倍左右,很明显电流的话根本就用不上HFE放大系统,处于截止状态…

    2022年9月11日
    0
  • 数据结构顺序栈和链栈的区别_数据结构链栈的实现代码

    数据结构顺序栈和链栈的区别_数据结构链栈的实现代码实现顺序栈和链栈的、栈的初始化、入栈、出栈、获取栈顶元素功等功能。顺序栈代码如下:#include “pch.h”#include <iostream>#include<Windows.h>#include<string>using namespace std;#define OK 1#define ERROR 0#define OVE…

    2022年8月18日
    3
  • vue $attrs的使用

    vue $attrs的使用$attrs的使用vue$attrs是在vue的2.40版本以上添加的。项目中有多层组件传参可以使用$attrs,可以使代码更加美观,更加简洁,维护代码的时候更方便。如果使用普通的父子组件传参prop和$emit,$on会很繁琐;如果使用vuex会大材小用,只是在这几个组件中使用,没必要使用vuex;使用事件总线eventBus,使用不恰当的话,有可能会出现事件多次执行。如果给组件传递…

    2022年10月18日
    0
  • ci 框架中defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);

    ci 框架中defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);

    2022年2月8日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号