WIFI终端的MAC地址捕获方法与流程

文档序号:18740783发布日期:2019-09-21 01:45阅读:1415来源:国知局
WIFI终端的MAC地址捕获方法与流程

本发明涉及MAC地址捕获方法,特别是涉及WIFI终端的MAC地址捕获方法。



背景技术:

随着互联网的飞速发展,WIFI城市热点和自建无线网络已在各大城市广泛普及,无论公共场所(如酒店、卖场及其他娱乐休闲场所)还是高校、居民小区里都有大量的无线WIFI可供终端接入。伴随无线WIFI网络的发展,国家安全管理单位对WIFI网络的监管的需求也日益增长。MAC(Media Access Control)地址,或称为MAC地址、硬件地址,是用于标识网络设备的唯一身份,通过捕获WIFI终端的MAC地址,可用于对WIFI无线上网终端进行采集、定位和布控等。

现有技术中的申请号为201310698106.9、发明名称为“一种无线终端MAC地址采集方法及装置”的发明专利申请公开了以下技术方案:将无线网卡设置为monitor模式进行WIFI终端的MAC地址捕获,无线网卡工作于纯被动模式,完全依赖于WIFI终端的通信行为,这种方案仅适用于WIFI终端连接AP且存在一定通信数据量的情形,对于通信数据量少的情况下就无法实现有效的MAC地址捕获。



技术实现要素:

发明目的:本发明的目的是提供一种WIFI终端的MAC地址捕获方法,能够解决现有技术中存在的“已连接AP的WIFI终端通信数据量少的情况下无法实现有效的MAC地址捕获”的技术问题。

技术方案:本发明所述的WIFI终端的MAC地址捕获方法,包括以下步骤:

S1:将无线设备设置为工作于被动模式;

S2:定时切换工作信道;

S3:判断是否有WIFI终端连接了AP:如果有,则进行步骤S4;否则,返回步骤S2;

S4:将无线设备切换为工作于主动模式并且不再切换工作信道;

S5:构造NULL帧,为NULL帧设置源MAC地址,NULL帧的目的MAC地址为所述WIFI终端的MAC地址,并用列表记录NULL帧的源MAC地址与WIFI终端的MAC地址之间的对应关系,然后定期向WIFI终端发送NULL帧;

S6:如果无线设备收到ACK帧,则通过步骤S5中所述列表查找该ACK帧的目的MAC地址所对应的WIFI终端的MAC地址。

进一步,所述步骤S3中,通过对监听到的帧进行检查,从而判断是否有WIFI终端连接了AP。

进一步,所述步骤S5中,如果有多个WIFI终端均连接了AP,则将发送给不同WIFI终端的NULL帧的源MAC地址设置成不同的。

进一步,所述步骤S5中,NULL帧的源MAC地址通过式(1)得到:

NULL帧的源MAC地址=起始MAC地址+k (1)

式(1)中,起始MAC地址为十六进制的地址,k为HASH值,通过式(2)计算得到;

k=md5sum(MAC)/16777216 (2)

式(2)中,MAC为已连接AP的WIFI终端的MAC地址。

进一步,还包括构造十六进制的起始MAC地址的步骤,以及构建数组的步骤;所述构建数组的步骤具体为:构建长度为16777216的数组array,数组中的每个元素均包含bit和mac这两个变量,其中bit表示是否使用标志位,bit=0表示未使用标志位,bit=1表示已使用标志位,mac表示十六进制的MAC地址,bit和mac的初始值均为0;

所述步骤S4中,将无线设备切换为工作于主动模式并且不再切换工作信道之后,还对于已连接AP的WIFI终端通过k=md5sum(MAC)/16777216计算出k的值,MAC为已连接AP的WIFI终端的MAC地址,然后查询所述数组中第k个元素所对应的bit值:如果bit值为0,则将已连接AP的WIFI终端的MAC地址赋给数组中第k个元素所对应的mac值,并将起始MAC地址+k作为NULL帧的源MAC地址;如果bit值为1,则比较已连接AP的WIFI终端的MAC地址与数组中第k个元素所对应的mac值是否相同,如果相同则将起始MAC地址+k作NULL帧的源MAC地址,如果不相同则返回步骤S2。

进一步,所述起始MAC地址为10-11-12-00-00-00。

有益效果:本发明公开了一种WIFI终端的MAC地址捕获方法,在WIFI终端连接了AP之后,向WIFI终端发送NULL帧,这样WIFI终端就会回复ACK帧,从而能够增大无线设备与WIFI终端之间的通信数据量,便于实时跟踪WIFI终端的状态变化,特别是位置变化,从而能够实现WIFI终端MAC地址的高效捕获。

附图说明

图1为本发明具体实施方式中方法的流程图。

具体实施方式

本具体实施方式公开了一种WIFI终端的MAC地址捕获方法,如图1所示,包括以下步骤:

S1:将无线设备设置为工作于被动模式;

S2:定时切换工作信道,例如可以把切换周期设为300毫秒;

S3:判断是否有WIFI终端连接了AP:如果有,则进行步骤S4;否则,返回步骤S2;

S4:将无线设备切换为工作于主动模式并且不再切换工作信道;

S5:构造NULL帧,为NULL帧设置源MAC地址,NULL帧的目的MAC地址为所述WIFI终端的MAC地址,并用列表记录NULL帧的源MAC地址与WIFI终端的MAC地址之间的对应关系,然后定期向WIFI终端发送NULL帧;例如可以把发送NULL帧的周期设为1秒;

S6:如果无线设备收到ACK帧,则通过步骤S5中所述列表查找该ACK帧的目的MAC地址所对应的WIFI终端的MAC地址。

步骤S3中,通过对监听到的帧进行检查,从而判断是否有WIFI终端连接了AP。

步骤S5中,如果有多个WIFI终端均连接了AP,则将发送给不同WIFI终端的NULL帧的源MAC地址设置成不同的。

步骤S5中,NULL帧的源MAC地址通过式(1)得到:

NULL帧的源MAC地址=起始MAC地址+k (1)

式(1)中,起始MAC地址为十六进制的地址,例如可以为10-11-12-00-00-00,起始MAC地址可以是在IEEE组织发布的有效OUI(Organizationally uni que identifier)范围之外的任意一个地址;k为HASH值,通过式(2)计算得到;

k=md5sum(MAC)/16777216 (2)

式(2)中,MAC为已连接AP的WIFI终端的MAC地址。

本方法还可以包括构造十六进制的起始MAC地址的步骤,以及构建数组的步骤。构造十六进制的起始MAC地址的步骤和构建数组的步骤可以在步骤S4之前的任何一步中进行。构建数组的步骤具体为:构建长度为16777216的数组array,数组中的每个元素均包含bit和mac这两个变量,其中bit表示是否使用标志位,bit=0表示未使用标志位,bit=1表示已使用标志位,mac表示十六进制的MAC地址,bit和mac的初始值均为0。

步骤S4中,将无线设备切换为工作于主动模式并且不再切换工作信道之后,还对于已连接AP的WIFI终端通过k=md5sum(MAC)/16777216计算出k的值,MAC为已连接AP的WIFI终端的MAC地址,然后查询所述数组中第k个元素所对应的bit值:如果bit值为0,则将已连接AP的WIFI终端的MAC地址赋给数组中第k个元素所对应的mac值,并将起始MAC地址+k作为NULL帧的源MAC地址;如果bit值为1,则比较已连接AP的WIFI终端的MAC地址与数组中第k个元素所对应的mac值是否相同,如果相同则将起始MAC地址+k作NULL帧的源MAC地址,如果不相同则返回步骤S2。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1