2017.9.26
公开源码(Apache2.0协议)

https://github.com/769484623/WiFiProbe

—————————————————————————————————————————————————————

在学校断断续续做了一年多的Openwrt WIFI探针,从刚开始磕磕绊绊,国内几乎没有公开的资料的情况下入手到最后能够较完整得到几乎所有需要的数据,期间确实是很辛劳。
我选用的方案是:

PCAP库
RADIOTAP解析库

PCAP库作用为将WIFI模式切换为监听模式同时进行抓包原始数据获取。
RADIOTAP库作用为得到RSSI、频率等比较底层的信息,同时进行一些错误数据的抛弃。

下面开始讲解PCAP库的使用。

在本机安装PCAP并完成Makefile编写

安装这个不多说了,直接在Openwrt上获取并安装PCAP也是可以的,或者选择像我一样在交叉编译过程中在gcc 最后加上 -static 静态连接上。
下面是我使用的解决方法:

$(CC) $(LDFLAGS) XX.o -o XX -lpcap -static
  • 1

关于Openwrt Makefile的编写与对应IPK的生成,网络上有很多说明,不再赘述。

PCAP的使用

    char errbuff[PCAP_ERRBUF_SIZE];pcap_t *device = pcap_open_live(argv[1], 8000, 1, 0, errbuff);//(1) if (!device) { printf("error: pcap_open_live(): %s\n", errbuff); exit(1); } if (pcap_set_rfmon(device, 1) == 0)//(2) { printf("can't enter rfmode\n"); exit(1); } printf("Scaning starts\n"); pcap_loop(device, -1, getPacket, &i); //Scaning starts//(3) pcap_close(device);

PS:
(1)argv[1]为网卡名字,如wlan0这样。8000为获取数据大小,1这里将网卡设置为混杂模式,0为无超时等待,errbuf意义如名字。
(2)pcap_set_rfmon,这个是将网卡设置为监听模式的函数,省去了调用iw 等系统程序的调用。
(3)pcap_loop,获取到了数据之后便调用getPacket函数。 getPacket函数应该简洁,并尽可能短 ,我工程实现中使用队列(可存32帧)来存储待分析的数据,发现队列基本一直处于满或者快满的状态,说明底层传上来的数据速度比分析速度快,同时观测发现系统占用60%的CPU,Usr占用只有区区18%。
下面为调用函数的原型。

void getPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, const u_char *packet);

packet这个就是获取到的数据。具体分析方法后面会具体说明。

转载于:https://www.cnblogs.com/wanghuaijun/p/7786649.html

Openwrt WIFI探针开发【一】相关推荐

  1. linux wifi探针,Openwrt WIFI探针开发

    2017.9.26 公开源码(Apache2.0协议) https://github.com/769484623/WiFiProbe --------------------------------- ...

  2. openwrt上wifi探针的实现

    openwrt上wifi探针的实现 探针是通过wifi搜集经过这个AP范围的手机的mac地址,没有什么深刻的东西,知乎上关于这个东西讨论的很多,有人觉得很有用,可以做很多增值的应用,有人觉得没啥用,不 ...

  3. ESP8266开发之旅 应用篇⑤ WiFi探针

    文章目录 1.前言 2. WiFi探针 2.1 WiFi探针是什么 2.2 WiFi探测特点 2.3 探针技术原理 3. ProbeRequest管理帧 3.1 MAC Head 3.1 Frame ...

  4. ESP8266 WiFi探针 MAC

    当一个设备给另外一个设备通过无线传输技术发送信息时,周围的其他同类设备都是能够收到这些信息的,WiFi探针技术就是基于这个原理.具体来说,只要一个WiFi设备在WiFi探针的侦听范围内,当这个WiFi ...

  5. 中科爱讯WiFi探针在客流分析统计的应用

    基于WiFi探针的特性,可以在顾客无感知的情况下采集到手机的MAC地址,用于线下商业统计人流量.客流量. 在客流统计应用方面,WiFi探针可以作为一个独立的产品存在,同时也可以配合视频客流作为视频客流 ...

  6. 中科爱讯WiFi探针在贵宾客户提醒领域的应用

    很多人很难理解为什么WiFi探针可以应用到贵宾客户提醒领域.在我们收到的诸多需求中,贵宾客户提醒功能是需求中提及较多的. 中科爱讯Wi-Fi探针通过精准的识别贵宾客户的MAC地址,帮助企业快速的知晓贵 ...

  7. 中科爱讯双频串口WiFi探针TZ5001 产品介绍

    中科爱讯WiFi探针TZ-5001支持串口.USB连接上位机(安卓.电脑.平板),可以采集2.4G/5G WiFi数据.配备有Android.PC端免费测试工具.通过抓取2.4G WiFi信号的MAC ...

  8. WiFi探针信息了解

    前年十月安卓的功能做的差不多了,领导安排做 openwrt 上的 WiFi 探针功能,真是什么都不懂,先学 Linux,再看C语言,接着弄虚拟机编译 openwrt 固件,刷机,了解 WiFi 探针信 ...

  9. 中科爱讯WiFi探针 常见应用及常见问题解答

    中科爱讯WiFi探针常见问题解答 WiFi探针可以获取到哪些数据? 答:WiFi探针可以获取到热点MAC地址.终端MAC地址.SSID(热点名称).RSSI值(信号强度值).信道.Frame大类.Fr ...

最新文章

  1. 20.Feature分支
  2. netbean创建jsf项目
  3. 17商品推荐系统项目框架
  4. 【jQuery笔记Part4】03-事件详解
  5. 最全2019 AI/计算机/机器人顶会时间表来了,共收录36场会议,投稿冲鸭!
  6. js时间对象相关函数
  7. k380没有验证码_罗技K380蓝牙键盘
  8. 互联网视频直播技术(广电总局、优酷土豆、XX直播)
  9. 迅雷android 电视,【迅雷电视助手】迅雷电视助手安卓版(Android)2.0下载_太平洋下载中心...
  10. php微缩图,PHP进阶技巧:php用流方式制作缩略图
  11. T32添加Toolbar按钮
  12. 打印ie浏览器去除页眉页脚问题
  13. 传奇 定时任务(泡点、时间触发、任务活动等)
  14. 用docker安装tomcat并实现目录映射端口映射输入ip地址测试网页连接
  15. 46個不可不知的常識
  16. Python 调用 C++
  17. uni-app 中英文切换
  18. BGP(Border Gatreway Protcol)边界网关路由协议
  19. 苹果6s出现连接不上服务器未响应,苹果6s的蜂窝移动数据打开没反应怎么办
  20. CVBS转BT656/601,GM7150,国产视频解码芯片

热门文章

  1. JavaScript 技术篇-chrome利用ClipboardEvent写入剪切板,chrome写入剪切板不成功解决方法
  2. 最新!压缩为rar格式方法,目前只能用:WinRAR压缩工具-rar压缩格式的版权所有者。
  3. CTFshow php特性 web95
  4. CTFshow 命令执行 web46
  5. 利用Phtoshop去掉图片中的线性渐变背景
  6. 【HDU 2814 扩展欧拉 a^b ≡ (a mod c)^b mod ϕ(c)+ϕ(c) modc,b=ϕ(c) 】
  7. 九度-1463-招聘会
  8. OpenCv:Mat矩阵的初始化
  9. 多彩投网站动态爬取[python+selenium]
  10. 2.1.4 对梯度消失和梯度爆炸的近似解决方案