一种MAC地址的获取方法及探测设备与流程

文档序号:19605165发布日期:2020-01-03 13:27阅读:644来源:国知局
一种MAC地址的获取方法及探测设备与流程

本发明涉及通信技术领域,尤其涉及一种mac地址的获取方法及探测设备。



背景技术:

在移动互联网通信中,基于ieee802.11系列标准的无线局域网(wirelessfidelity,wifi)技术常被应用于用户行为分析,为其提供数据基础,例如基于wifi技术获取诸如商场、公园等场所内终端设备的媒体访问控制(mediaaccesscontroladdress,mac)地址,来分析该场所的人流量。

目前,通常应用wifi探针捕捉终端设备广播的探测请求(proberequest)帧,来获取终端设备的mac地址,进而基于获取的mac地址进行用户行为分析。但是proberequest帧中可能存在随机mac地址,会对用户行为分析造成干扰,准确性较差。



技术实现要素:

本发明提供一种mac地址的获取方法及探测设备,用以解决现有技术中存在的随机mac地址对用户行为分析造成干扰问题。

第一方面,本发明实施例提供一种mac地址的获取方法,应用于探测设备,包括:

监测第一信道上的至少一个目标帧,所述目标帧中包含有终端设备的mac地址;

根据所述目标帧的类型和/或真实mac地址的格式,从所述至少一个目标帧分别包含的mac地址中,确定出真实mac地址。

在一种可选的实现方式中,所述第一信道为位于所述探测设备预设探测范围内的wifi热点设备所对应的wifi信道。

在一种可选的实现方式中,所述根据所述目标帧的类型和/或真实mac地址的格式,从所述至少一个目标帧分别包含的mac地址中,确定出真实mac地址,包括:

当第一目标帧的类型为管理帧时,如果所述管理帧中包含的mac地址与所述真实mac地址的格式一致,确定所述管理帧中包含的mac地址为真实mac地址;或者,

当所述目标帧的类型为数据帧时,确定所述数据帧中包含的mac地址为真实mac地址。

在一种可选的实现方式中,所述监测第一信道上的至少一个目标帧,包括:

在预设时长内,监测第一信道上的至少一个目标帧;

所述方法还包括:在从所述至少一个目标帧分别包含的mac地址中确定出真实mac地址后,向服务器发送第一消息,所述第一消息中携带确定出的真实mac地址,所述确定出的mac地址用于用户行为分析。

在一种可选的实现方式中,所述方法还包括:

在确定出的真实mac地址的数量达到预设阈值时,向服务器发送第二消息,所述第二消息中携带确定出的真实mac地址,所述确定出的mac地址用于用户行为分析。

在一种可选的实现方式中,所述管理帧为proberequest帧,所述数据帧为qosdata帧。

第二方面,本发明实施例提供一种探测设备,包括:

监测模块,用于监测第一信道上的至少一个目标帧,所述目标帧中包含有终端设备的mac地址;

确定模块,用于根据所述目标帧的类型和/或真实mac地址的格式,从所述至少一个目标帧分别包含的mac地址中,确定出真实mac地址。

在一种可选的实现方式中,所述第一信道为位于所述探测设备预设探测范围内的wifi热点设备所对应的wifi信道。

在一种可选的实施方式中,所述确定模块,具体用于:

当第一目标帧的类型为管理帧时,如果所述管理帧中包含的mac地址与所述真实mac地址的格式一致,确定所述管理帧中包含的mac地址为真实mac地址;或者,

当所述目标帧的类型为数据帧时,确定所述数据帧中包含的mac地址为真实mac地址。

在一种可选的实施方式中,所述监测模块,具体用于:

在预设时长内,监测第一信道上的至少一个目标帧;

所述探测设备还包括:

发送模块,用于在从所述至少一个目标帧分别包含的mac地址中确定出真实mac地址后,向服务器发送第一消息,所述第一消息中携带确定出的真实mac地址,所述确定出的mac地址用于用户行为分析。

在一种可选的实施方式中,所述发送模块,还用于:

在确定出的真实mac地址的数量达到预设阈值时,向服务器发送第二消息,所述第二消息中携带确定出的真实mac地址,所述确定出的mac地址用于用户行为分析。

在一种可选的实现方式中,所述管理帧为proberequest帧,所述数据帧为qosdata帧。

第三方面,本发明实施例提供一种探测设备,包括:

存储器以及处理器;

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面的任一实现方式所述的方法。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述方法。

本发明实施例中,根据在第一信道上监测到的目标帧的类型和/或真实mac地址的格式,从至少一个目标帧分别包含的mac地址中,确定出真实mac地址,用以用户行为分析,能够避免随机mac地址造成的干扰,有效提升用户行为分析的准确性。

附图说明

图1为本发明实施例提供的一种帧结构示意图;

图2为本发明实施例提供的一种mac地址的获取方法的流程示意图;

图3为本发明实施例提供的一种探测设备的结构框图;

图4为本发明实施例提供的一种探测设备300的电路示意图;

图5为本发明实施例提供的一种交互示意图;

图6为本发明实施例提供的另一种探测设备的结构意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

需要说明的是,本发明中涉及的多个,是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述各数据,但这些数据不应限于这些术语。这些术语仅用来将各数据彼此区分开。

在移动互联网通信中,诸如手机等终端设备接入路由器来实现wifi通信,wifi通信中终端设备与路由器之间的通信数据被封装成具有固定格式的帧,如参见图1,本发明实施例提供了一种帧结构示意图,图1具体示意出了ieee802.11协议规定的帧结构。具体的,该帧结构中所包含的字段描述如下表1所示:

表1

wifi通信通常涉及探测阶段、认证阶段、关联阶段以及与路由器连接后的数据交互阶段。以手机为例,手机开启wifi开关但未与路由器连接即为探测阶段,在此阶段中手机会在其周围所有信道广播proberequest帧,以探测周围可连接的路由器。然后经过认证阶段发送authentication认证帧、关联阶段发送associationrequest关联请求帧与路由器建立连接,进而转入与路由器连接后的数据交互阶段,在数据交互阶段中,手机会向其接入的路由器发送qosdata数据帧,也会接收到来自路由器的qosdata数据帧。终端设备所发送的上述帧中包含有自身的mac地址信息,这一特性常被应用于为用户行为分析提供数据基础,例如通过获取诸如商场、公园等场所内终端设备的mac地址,来分析该场所特定时段的人流量情况。

目前,通常应用wifi探针轮询所有信道捕捉终端设备广播的管理帧(managementframe)中的proberequest帧,来获取终端设备的mac地址,进而基于获取的mac地址进行用户行为分析。但是由于当前存在一些诸如苹果、华为、vivo等品牌的手机采用的是随机mac地址机制,这类手机所发送的proberequest帧中包含的mac地址为随机mac地址,而随机mac地址会在wifi通信过程中发生变化,导致wifi探针所捕捉的proberequest帧中存在随机mac地址时,会对用户行为分析造成干扰,采用这样的方式进行用户行为分析准确性较差。

基于此,本发明实施例提供一种mac地址的获取方法及探测设备,用以解决现有技术中存在的随机mac地址对用户行为分析造成干扰问题。其中,方法和装置是基于同一发明构思的,由于方法和设备解决问题的原理相似,因此方法及设备的实施可以相互参见,重复之处不再赘述。

为便于理解,首先对本发明实施例提供的一种mac地址的获取方法进行详细介绍。

参见图2所示的一种mac地址的获取方法,应用于探测设备,探测设备可以是诸如wifi探针等具有捕获并处理帧的功能的设备。该方法包括:

步骤s201,监测第一信道上的至少一个目标帧,目标帧中包含有终端设备的mac地址。

其中,目标帧的类型包括管理帧及数据帧。管理帧可以是探测请求(proberequest)帧、关联请求(associationrequest)帧;数据帧可以是服务质量数据(qosdata)帧、空(null)帧、无竞争周期确认(cf-ack)帧、无竞争周期轮询(cf-poll)帧、null帧的qos版本,即qosnull帧等,其中qosdata帧与data帧不同,qosdata帧由发送端发送给接收端后,接收端会返回一个指示确认信号,以便发送端确认数据发送成功,保证发送信号的质量。

步骤s202,根据目标帧的类型和/或真实mac地址的格式,从至少一个目标帧分别包含的mac地址中,确定出真实mac地址。

具体实施时,当第一目标帧的类型为管理帧时,如果管理帧中包含的mac地址与真实mac地址的格式一致,确定管理帧中包含的mac地址为真实mac地址;或者,当目标帧的类型为数据帧时,确定数据帧中包含的mac地址为真实mac地址。其中,按照ieee802.11规范,真实mac地址中第一个字节的低四位是0、4、8、c,基于此,可将管理帧中包含的与真实mac地址这一格式不一致的地址,也即管理帧中的随机mac地址滤除。能够避免随机mac地址对后续用户行为分析造成的干扰。

本发明实施例提供的上述一种mac地址的获取方法,根据在第一信道上监测到的目标帧的类型和/或真实mac地址的格式,从至少一个目标帧分别包含的mac地址中,确定出真实mac地址,用以用户行为分析,能够避免随机mac地址造成的干扰,有效提升用户行为分析的准确性。

进一步,由于终端设备打开wifi开关便会持续广播proberequest帧,与wifi热点连接后便会持续广播qosdata帧,proberequest帧和qosdata帧存在的时间较久,在一种可选的实施方式中,可通过捕捉终端设备在第一信道上发送的proberequest帧和/或qosdata帧来获取其中包含的mac地址。

具体实施时,ieee802.1针对不同帧规定有相应的帧结构,例如ieee802.11规定:不同类型帧的帧结构字段type的取值不同,proberequest帧、associationrequest帧等管理帧中字段type的取值是00,而诸如qosdata帧等数据帧中字段type的取值是10;不同类型帧的帧结构字段framecontrol的第一个字节取值不同,诸如qosdata帧中framecontrol的第一个字节取值是136、proberequest帧中framecontrol的第一个字节取值是64、associationrequest帧中framecontrol的第一个字节取值是0;qosdata帧为双向传输,包括终端设备发送至wifi热点设备方向上的qosdata帧和wifi热点设备发送至终端设备方向上的qosdata帧,区别在于不同方向上qosdata帧中字段tods和framds的取值不同,终端设备发送至wifi热点设备方向上的tods和framds取值分别是1、0;wifi热点设备发送至终端设备方向上的tods和framds取值分别是0、1。

基于此,获取终端设备在第一信道上发送的proberequest帧可通过如下方式实施:在第一信道上捕捉符合第一帧结构格式的帧,得到终端设备发送的proberequest帧;其中,第一帧结构格式为帧的type取值为00,且帧中framecontrol的第一个字节取值是64。获取第一信道上终端设备发送的qosdata帧可通过如下方式实施:在第一信道上捕捉符合第二帧结构格式的帧,得到终端设备发送的qosdata帧;其中,第二帧结构格式为帧中type取值为10,且帧中framecontrol的第一个字节取值是136,帧中tods和framds取值分别是0、1。

进一步,在一种可选的实施方式中,上述第一信道为位于探测设备预设探测范围内的wifi热点设备所对应的wifi信道。

由于wifi热点设备,如路由器一上电工作,便会向周围发送信标帧(beaconframe),信标帧的帧体中包含该wifi热点设备的相关参数信息,包括时间戳、帧间隔、服务集标识、信道频率信息、认证信息等,或者由探测设备通过主动发送扫描请求来获取wifi热点设备返回的相关参数信息。基于此,第一信道可通过以下方式确定:根据探测设备探测范围内捕捉到的信标帧,来确定探测范围内的wifi热点设备以及其对应的wifi信道。

本发明实施例中,仅需扫描探测范围内wifi热点设备所对应的wifi信道,即第一信道,获取mac地址,相较于现有技术中wifi探针轮询扫描探测范围内的所有信道,可以减少耗时及扫描的周期时间,避免干扰信号,使得获取的mac地址结果更为精确。

进一步,上述方法还包括将确定出的真实mac地址发送给服务器,用以为服务器进行用户行为分析提供大数据基础。

在一种可选的实施方式中,监测第一信道上的至少一个目标帧,包括:在预设时长内,监测第一信道上的至少一个目标帧;

基于此,上述方法还包括:在从至少一个目标帧分别包含的mac地址中确定出真实mac地址后,向服务器发送第一消息,第一消息中携带确定出的真实mac地址,确定出的mac地址用于用户行为分析

在另一种可选的实施方式中,上述方法还包括:

在确定出的真实mac地址的数量达到预设阈值时,向服务器发送第二消息,第二消息中携带确定出的真实mac地址,确定出的mac地址用于用户行为分析。

进一步,当探测设备探测范围内存在多个wifi热点设备时,在一种可选的实施方式中,可以以wifi热点设备为单位,分别将探测范围内各个wifi热点设备对应的确定出的真实mac地址发送至服务器;其中,如果探测设备从wifi热点设备对应的wifi信道上获取的目标帧既有proberequest帧,也有qosdata帧,则该wifi热点设备对应真实mac地址包括来自于proberequest帧符合真实mac地址格式的第一mac地址,以及来自于终端设备发送的qosdata帧的第二mac地址。此外,结合上述方式,在一种可选的实施方式中,将探测范围内各个wifi热点设备对应的真实mac地址分别发送至服务器,包括:达到预设时长或者达到针对mac地址数量设置的预设阈值时,分别将探测范围内各个wifi热点设备对应的真实mac地址发送至服务器。

具体实施时,服务器接收到探测设备发送的真实mac地址后,可根据具体要分析的用户行为,对这些真实mac地址进行筛选及统计。例如,服务器要统计前述预设时长内,一直连接某一wifi热点设备的用户有哪些,则可通过统计该wifi热点设备对应的前述第二mac地址中同一mac地址出现的次数/频率,判断该同一mac地址在预设时长内出现的频率高于预设频率阈值时,则确定该同一mac地址所指示的终端设备一直存在探测范围内,且与某一wifi热点设备保持连接。另例如,服务器要统计接入某一wifi热点设备的用户中有多少终端设备引入随机mac地址机制,则通过统计包含在该wifi热点设备对应的前述第二mac地址中,但不包含在该wifi热点设备对应的前述第一mac地址中的mac地址的数量,来确定当前接入该wifi热点设备中引入随机mac地址机制的终端设备的数量。

综上所述,本发明实施例提供的上述方法应用于探测设备,通过扫描位于探测设备的探测范围内的各wifi热点设备对应的wifi信道,监测信道上包含有终端设备的mac地址的目标帧,然后根据目标帧的类型和/或真实mac地址的格式,确定出各wifi热点设备对应的真实mac地址,进而在达到预设时长或者是针对mac地址数量设定的预设阈值时,向服务器发送前述确定出的mac地址,用以进行用户行为分析。能够在减少扫描信道缩短扫描时间的同时,应用真实的mac地址进行用户行为分析避免干扰,从而提升用户行为分析的准确性。本发明实施例提供的上述方式可以应用于商场客流量统计、员工考勤定位、指定客户提醒等用户行为分析、大数据分析中。

基于与方法实施例同样的发明构思,本发明实施例提供了一种探测设备300,参见图3所示,包括:

监测模块301,用于监测第一信道上的至少一个目标帧,所述目标帧中包含有终端设备的mac地址;

确定模块302,用于根据所述目标帧的类型和/或真实mac地址的格式,从所述至少一个目标帧分别包含的mac地址中,确定出真实mac地址。

本发明实施例提供的上述探测设备300,根据在第一信道上监测到的目标帧的类型和/或真实mac地址的格式,从至少一个目标帧分别包含的mac地址中,确定出真实mac地址,用以用户行为分析,能够避免随机mac地址造成的干扰,有效提升用户行为分析的准确性。

在一种可选的实施方式中,第一信道为位于探测设备预设探测范围内的wifi热点设备所对应的wifi信道。

在一种可选的实施方式中,确定模块302,具体用于:

当第一目标帧的类型为管理帧时,如果管理帧中包含的mac地址与真实mac地址的格式一致,确定管理帧中包含的mac地址为真实mac地址;或者,

当目标帧的类型为数据帧时,确定数据帧中包含的mac地址为真实mac地址。

在一种可选的实施方式中,监测模块301,具体用于:

在预设时长内,监测第一信道上的至少一个目标帧;

探测设备还包括:

发送模块303,用于在从至少一个目标帧分别包含的mac地址中确定出真实mac地址后,向服务器发送第一消息,第一消息中携带确定出的真实mac地址,确定出的mac地址用于用户行为分析。

在一种可选的实施方式中,发送模块303,还用于:

在确定出的真实mac地址的数量达到预设阈值时,向服务器发送第二消息,第二消息中携带确定出的真实mac地址,确定出的mac地址用于用户行为分析。

在一种可选的实施方式中,管理帧为proberequest帧,数据帧为qosdata帧。

进一步,参见图4,本发明实施例提供了一种探测设备400的电路示意图,该探测设备400包括电源适配器(5v/1a)、电路保护与管理电路、ldo稳压电路以及通过串口连接的两个esp8266芯片,分别为图中示意出的第一esp-12f模组、第二esp-12f模组;其中,第一esp-12f模组用以实现前述探测模块和确定模块的功能,即用于探测第一信道上目标帧中mac地址以及确定出真实mac地址;第二esp-12f模组用以实现前述上传模块的功能,即用于向服务器发送第一消息和/或第二消息。

具体的,如图5所示的一种交互示意图,探测设备400与服务器500通信,探测设备400的探测范围内存在一个wifi热点设备401和三个终端设备(分别为ue1,ue2,ue3)为例,应用该探测设备400执行上述方法,包括如下过程:

(一)设备初始化过程

由于esp-12f模组自带的串口在上电后会打印一段乱码,为防止第一esp-12f模组在上电后串口打印的乱码影响第二esp-12f模组,在给第一esp-12f模组的串口上电之前,首先失能第二esp-12f模组,然后给第一esp-12f模组上电,并初始化第一esp-12f模组的串口,以用于后续通过第一esp-12f模组的串口配置第二esp-12f模组的透传。

设置第一esp-12f模组的工作模式为sta模式,以启动第一esp-12f模组扫描信道的功能,确定出位于探测范围的wifi热点设备401对应的wifi信道,即前述第一信道。

初始化探测设备内预设的硬件定时器,注册系统初始化完成的回调函数,在该回调函数中执行如下操作:关闭第一esp-12f模组的sniffer(嗅探)模式,初始化信道;使能第二esp-12f模组,并清除第一esp-12f模组的串口接收和发送的数据,例如第二esp-12f模组使能后向第一esp-12f模组的串口输入的乱码。

使能硬件定时器,注册sniffer模式下的回调函数,以在硬件定时器中使能sniffer模式,由第一esp-12f模组通过串口向第二esp-12f模组发送at指令以配置第二esp-12f模组的透传模式。

(二)探测及确定过程

在sniffer模式的回调函数中执行如下操作:根据不同类型帧的buf长度和帧的格式(帧中字段)来捕捉由ue1,ue2,ue3所发出的proberequest帧中包含的mac地址以及ue1,ue2,ue3所发出的qosdata帧中的mac地址,具体的,可通过sniffer模式下的第一esp-12f模组读取各proberequest帧、qosdata帧中的address2字段,address2字段的6个字节即为终端设备的mac地址。通过真实mac地址的格式规范滤除proberequest帧中的随机mac地址,确定出真实的mac地址,即保留下proberequest帧中存在的真实mac地址和qosdata帧中的mac地址。

(三)发送过程

每采集到一定数量(也即,前述预设阈值)的mac地址或者达到预设时长,则分别将两种帧的mac地址通过第二esp-12f模组发送至服务器,用以使服务器根据mac地址进行用户行为分析、大数据分析等。

进一步,本发明实施例还提供了另一种探测设备600的结构意图,参见图6所示,包括:

通信接口601,存储器602以及处理器603;

其中,所述处理器603通过所述通信接口601与其它设备进行通信,比如,其它设备可以是服务器,处理器603可以通过通信接口601向服务器发送第一消息/第二消息;存储器602,用于存储程序指令;处理器603,用于调用所述存储器602中存储的程序指令,按照获得的程序执行上述实施例中探测设备执行的方法。

本申请实施例中不限定上述通信接口601、存储器602以及处理器603之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

在本申请实施例中,存储器,用于存储程序指令,存储器可以是非易失性存储器,比如硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram)。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。本申请实施例中不限定上述通信接口、存储器以及处理器之间的具体连接介质,比如总线,总线可以分为地址总线、数据总线、控制总线等。

进一步,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行上述方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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