一种获取终端的真实MAC地址的方法及装置 |
|||||||
申请号 | CN201710494608.8 | 申请日 | 2017-06-26 | 公开(公告)号 | CN107333260A | 公开(公告)日 | 2017-11-07 |
申请人 | 迈普通信技术股份有限公司; | 发明人 | 秦勇; 李永合; 王江林; | ||||
摘要 | 本 发明 实施例 提供一种获取终端的真实MAC地址的方法及装置,涉及通信技术领域,能够获取终端的真实MAC地址。该方法包括:接收终端发送的探测 请求 帧 ,并在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从管理报文中提取出源MAC地址。本发明实施例用于获取终端的真实MAC地址。 | ||||||
权利要求 | 1.一种获取终端的真实MAC地址的方法,其特征在于,包括: |
||||||
说明书全文 | 一种获取终端的真实MAC地址的方法及装置技术领域[0001] 本发明涉及通信技术领域,尤其涉及一种获取终端的真实MAC地址的方法及装置。 背景技术[0002] 由于终端的真实媒体访问控制(media access control,MAC)地址可以唯一的标识终端,因此在实际生活中的某些场景下,可能需要获取终端的真实MAC地址。例如,统计某一区域的人流量的场景下,可以通过采集该区域内的所有终端的真实MAC地址,来确定该区域内的终端数量,从而根据终端数量确定该区域的人流量。 [0004] 但是由于部分终端在发送探测请求(通常用英文表示为probe request)帧时,该探测请求帧中携带的源MAC地址为虚拟MAC地址,也就是说该源MAC地址不是终端的真实MAC地址,如此可能会导致获取的MAC地址有误,无法获取终端的真实MAC地址的问题。 发明内容[0005] 本发明的实施例提供一种获取终端的真实MAC地址的方法及装置,能够获取终端的真实MAC地址。 [0006] 第一方面,提供一种获取终端的真实MAC地址的方法,该方法包括: [0007] 接收终端发送的探测请求帧; [0008] 在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端; [0009] 若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从该管理报文中提取出源MAC地址。 [0010] 可选的,该方法还包括: [0011] 在探测请求帧中的源MAC地址不是虚拟MAC地址的情况下,从探测请求帧中提取出源MAC地址。 [0012] 可选的,探测请求帧中包括终端接入过的无线接入点的服务集标识; [0013] 将携带有服务集标识的探测响应帧发送至终端包括:将探测请求帧中的服务集标识携带在探测响应帧中发送至终端。 [0014] 可选的,上述将携带有服务集标识的探测响应帧发送至终端包括:从公共服务集标识列表中选择一组服务集标识携带在探测响应帧中发送至终端;该一组服务集标识中包括至少一个服务集标识; [0015] 在接收到终端发送的关联阶段的管理报文的情况下,停止发送探测响应帧; [0016] 在没有接收到终端发送的关联阶段的管理报文、且公共服务集标识列表中包括未选择过的服务集标识的情况下,从未选择过的服务集标识中选择一组服务集标识携带在探测响应帧中发送至终端。 [0017] 可选的,该方法还包括, [0018] 向无线控制器上报从管理报文中提取出的源MAC地址; [0019] 或者, [0020] 向无线控制器上报从探测请求帧中提取出的源MAC地址。 [0021] 本发明实施例提供的获取终端的真实MAC地址的方法中,可以接收终端发送的探测请求帧,并在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从管理报文中提取出源MAC地址。由于通常终端发送的关联阶段的管理报文中的源MAC地址为终端的真实MAC地址,因此通过本发明实施例提供的方法可以获取终端的真实MAC地址。 [0022] 第二方面,提供一种无线接入点,该无线接入点包括: [0023] 收发模块,用于接收终端发送的探测请求帧,并且在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文; [0024] 处理模块,用于从上述管理报文中提取出源MAC地址。 [0025] 可选的,处理模块,还包括在探测请求帧中的源MAC地址不是虚拟MAC地址的情况下,从探测请求帧中提取出源MAC地址。 [0026] 可选的,探测请求帧中包括终端接入过的无线接入点的服务集标识;收发模块,具体用于将探测请求帧中的服务集标识携带在探测响应帧中发送至终端。 [0027] 可选的,收发模块,具体用于从公共服务集标识列表中选择一组服务集标识携带在探测响应帧中发送至终端;该一组服务集标识中包括至少一个服务集标识;并且在接收到终端发送的关联阶段的管理报文的情况下,停止发送探测响应帧;以及在没有接收到终端发送的关联阶段的管理报文、且公共服务集标识列表中包括未选择过的服务集标识的情况下,从未选择过的服务集标识中选择一组服务集标识携带在探测响应帧中发送至终端。 [0028] 可选的,收发模块,还用于向无线控制器上报从上述管理报文中提取出的源MAC地址; [0029] 或者, [0030] 向无线控制器上报从探测请求帧中提取出的源MAC地址。 [0032] 图1为本发明实施例提供的一种无线局域网络的架构示意图; [0033] 图2为本发明实施例提供的一种终端的真实MAC地址的方法示意图一; [0034] 图3为本发明实施例提供的一种终端的真实MAC地址的方法示意图二; [0035] 图4为本发明实施例提供的一种无线接入点的结构示意图。 具体实施方式[0036] 下面结合附图对本发明实施例提供的一种获取终端的真实MAC地址的方法及装置进行详细描述。 [0037] 在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。 [0038] 目前,在获取终端的MAC地址时采用的方法是:无线接入点接收终端发送的探测请求(英文:probe request)帧,并获取探测请求帧中的源MAC地址,将其作为该终端的真实MAC地址。但是由于部分终端在发送探测请求帧时,该探测请求帧中携带的源MAC地址为虚拟MAC地址,也就是说该源MAC地址不是终端的真实MAC地址,如此可能会导致获取的MAC地址有误,无法获取终端的真实MAC地址的问题。 [0039] 为了解决上述问题,本发明实施例提供一种获取终端的真实MAC地址的方法,该方法可以接收终端发送的探测请求帧,并在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从该管理报文中提取出源MAC地址。由于通常终端发送的关联阶段的管理报文中的源MAC地址为终端的真实MAC地址,从而通过本发明实施例提供的方法可以获取终端的真实MAC地址。由于终端的真实MAC地址可以唯一的标识终端,因此通常在实际生活中的某些场景下我们需要获取终端的真实MAC地址。例如,在采用无线保真(英文全称:Wireless fidelity,英文缩写:wifi)技术定位用户位置的场景下,需要获取终端的真实MAC地址,以根据终端的真实MAC地址确定用户的位置;在统计某一区域的人流量的场景下,可以通过采集该区域内的所有终端的真实MAC地址,来确定该区域内的终端数量,从而根据终端数量确定该区域的人流量。 [0040] 示例性,的本发明实施例提供的获取终端的真实MAC地址的方法可以应用于如图1所示的无线局域网络中,该无线局域网络中包括一个无线控制器和多个无线接入点(图1中是以该无线通信系统中包括3个无线接入点,分别表示为无线接入点1、无线接入点2和无线接入点3为例进行说明的),无线控制器用于管理上述的3个无线接入点。图1中的每个无线接入点均可以根据本发明实施例提供的方法获取终端的真实MAC地址,并将其获取的终端的真实MAC地址上报给无线控制器,然后无线控制器可以根据该无线局域网络中终端的真实MAC地址做数据分析(例如上述的采用wifi技术定位用户位置或统计某一区域的人流量)。 [0041] 本发明实施例提供的获取终端的真实MAC地址的方法的执行主体可以为无线接入点。可选的,本发明实施例中的无线接入点可以为单纯的无线接入设备,也可以是无线路由器(包括无线网关、无线网桥)等设备。 [0042] 如图2所示,本发明实施例提供的获取终端的真实MAC地址的方法包括以下步骤S101-S115。 [0043] S101、无线接入点接收终端发送的探测请求帧。 [0044] 在终端进入无线局域网覆盖范围内时,进入扫描阶段,此时终端可以向周围的无线接入点发送探测请求帧,以扫描周围的wifi热点,在无线局域网络中的无线接入点可以接收终端发送的探测请求帧,在无线接入点接收终端发送的探测请求帧(即执行了上述S101)之后,可选的,无线接入点可以判断该探测请求帧的源MAC地址是否为虚拟MAC地址。 [0045] 通常终端发送的探测请求帧中的源MAC地址为终端的MAC地址,在实际情况中,该探测请求帧中的源MAC地址可能为终端的真实MAC地址,也可能为终端的虚拟MAC地址。 [0047] S102、无线接入点判断该探测请求帧的源MAC地址是否为虚拟MAC地址。 [0048] 由于针对不同厂商的设备,其虚拟MAC地址有不同的定制规则,因此可以根据定制规则对来是被该探测请求帧的源MAC地址。 [0049] 示例性的,目前在发送探测请求帧时将虚拟MAC应用于实际的是具有IOS操作系统的终端(以下简称为IOS终端),IOS终端是使用本地管理地址(英文全称:locally administered address)作为该IOS设备的虚拟MAC地址。通常该本地管理地址的第一个字节的低为的第二位为1,而终端的真实MAC地址的第一个字节的低位的第二位为0,因此无线接入点可以通过判断该探测请求帧的源MAC地址的第一个字节的低位的第二位是否为1来确定该探测请求帧的源MAC地址是否为随机虚拟MAC地址 [0050] 本发明实施例中,在该探测请求帧中的源MAC地址不是虚拟MAC地址的情况下,执行下述S103和S104;在该探测请求帧中的源MAC地址是虚拟MAC地址的情况下,执行下述S105。 [0051] S103、无线接入点从该探测请求帧中提取出源MAC地址。 [0052] 本发明实施例中,在该探测请求帧中的源MAC地址不是虚拟MAC地址的情况下,该探测请求帧中的源MAC地址为该终端的真实MAC地址,此时可以从该探测请求帧中提取出该源MAC地址,以获取该终端的真实MAC地址。 [0053] S104、无线接入点向无线控制器上报从该探测请求帧中提取出的源MAC地址。 [0054] 无线接入点向无线控制器上报从该探测请求帧中提取出的源MAC地址,也即将获取的终端的真实MAC地址上报给无线控制器,以便无线控制器根据其接收到的终端的真实MAC地址进行数据分析。 [0055] S105、无线接入点判断该探测请求帧中是否携带该终端接入过的无线接入点的服务集标识。 [0056] 本发明实施例中,在上述S101中无线接入点所接收的终端发送的探测请求帧中包含该终端接入过的无线接入点的服务集标识(英文全称:service set identifier,英文缩写:SSID)的情况下,执行下述步骤S106-S109;在上述S101中无线接入点所接收的终端发送的探测请求帧中不包含该终端接入过的无线接入点的服务集标识的情况下,执行下述步骤S110-S115。 [0057] S106、无线接入点将该探测请求帧中的服务集标识携带在探测响应帧中发送至终端。 [0058] 在上述S101中无线接入点所接收的终端发送的探测请求帧中包含该终端接入过的无线接入点的服务集标识的情况下,无线接入点可以将该探测请求帧中的服务集标识携带在探测响应帧中发送至终端,以便终端在接收到该探测响应帧后,进入关联阶段(即发送关联阶段的管理报文)。 [0059] S107、无线接入点接收终端发送的关联阶段的管理报文。 [0060] 通常无线接入点在进入关联阶段之后,会向无线接入点发用关联阶段的管理报文。 [0061] 本发明实施例中该关联阶段的管理报文可以为认证(通常用英文表示为:Auth)帧或关联(通常用英文表示为:Associate)帧等。 [0062] S108、无线接入点从该管理报文中提取出源MAC地址。 [0063] 由于通常终端在进入关联阶段之后,其发送的管理报文的源MAC地址均为终端的真实MAC地址,因此在无线接入点接收到终端发送的关联阶段的管理报文之后,无线接入点可以从该管理报文中提取出源MAC地址,以获取该终端的真实MAC地址。 [0064] S109、无线接入点向无线控制器上报从该管理报文中提取出的源MAC地址。 [0065] 无线接入点向无线控制器上报从该管理报文中提取出的源MAC地址,也即将获取的终端的真实MAC地址上报给无线控制器,以便无线控制器根据其接收到的终端的真实MAC地址进行数据分析。 [0066] S110、无线接入点从公共服务集标识列表中选择一组服务集标识携带在探测响应帧中发送至终端。 [0067] 本发明实施例中,在上述S101中无线接入点所接收的终端发送的探测请求帧中不包含该终端接入过的无线接入点的服务集标识的情况下,无线接入点可以从无线控制器下发的公共服务集标识列表中选择服务集标识携带在探测响应帧中发送至终端。 [0068] 通常无线控制器下发的公共服务集标识列表中包括多个服务集标识。 [0069] 示例性的,无线接入点从该公共服务集标识列表中选择一组服务集标识携带在探测响应帧中发送至终端,该一组服务集标识中包括至少一个服务集标识。 [0070] 通常,无线接入点可以通过射频所在信道探测响应帧给终端,相应的,在终端驻留在射频所在工作信道的时间内,终端可以接收所述无线接入点发送的探测响应帧。 [0072] 由于通常情况下一个探测响应帧中可以携带一个服务集标识,且无线接入点每收到一个探测请求帧,可以发送多个(例如:通常为16个)探测响应帧,因此无线接入点每收到一次探测请求帧就可以发送16个携带有不同服务集标识的探测响应帧。示例性的,无线接入点收到两次探测请求帧,则无线接入点可以发送两次探测响应帧,每次可以发送16个。 [0073] 示例性的,在上述无线接入点接收到两次探测请求帧的情况下,假设该公共服务集标识列表中包括128个服务集标识,无线接入点在第一次发送探测响应帧时,可以将公共服务集标识列表中的第1个至第16个服务集标识携带在探测响应帧中发送,无线接入点在第二次发送探测响应帧时,可以将第17个至第32个服务集标识携带在探测响应帧中发送,也即无线接入点可以向终端发送32个不同的服务集标识。 [0074] 又示例性的,在上述无线接入点接收到两次探测请求帧的情况下,假设该公共服务集标识列表中包括128个服务集标识,无线接入点在第一次发送探测响应帧时,可以将公共服务集标识列表中的第1个至第16个服务集标识携带在探测响应帧中发送,无线接入点在第二次发送探测响应帧时,还可以将第9个至第24个服务集标识携带在探测响应帧中发送,也即无线接入点可以向终端发送24个不同的服务集标识。这样第二次发送的探测响应帧中可以携带之前发送过的服务集标识,如此可以在终端未完全接收到第一次发送的探测响应帧的情况下,使终端再次接收一次携带相同服务集标识的探测响应帧,增加终端判断的准确性(具体是指终端判断接收到的服务集标识是否包含终端接入过的无线接入点的服务集标识的准确性)。 [0075] S111、无线接入点判断是否接收到终端发送的关联阶段的管理报文。 [0076] 本发明实施例中在无线接入节点执行上述S110之后,相应的终端接收携带有服务集标识的探测响应帧,并且在终端接收到的服务集标识(例如上述示例性说明中无线接入点向终端发送的32个不同的服务集标识)中包含终端接入过的无线接入点的服务集标识的情况下,终端进入关联阶段,发送关联阶段的管理报文给无线接入点;在终端接收到的服务集标识中不包含终端接入过的无线接入点的服务集标识的情况下,终端不向无线接入点发送关联阶段的管理报文。 [0077] 因此无线接入点可以在执行上述S110之后,判断是否接收到终端发送的关联阶段的管理报文,并在接收到终端发送的关联阶段的管理报文的情况下,执行S112和S113;在没有接收到终端发送的关联阶段的管理报文的情况下执行下述S114。 [0078] S112、无线接入点停止发送探测响应帧,并从该管理报文中提取出源MAC地址。 [0079] S113、无线接入点向无线控制器上报从该管理报文中提取出的源MAC地址。 [0080] 对于S113的相关描述,可以参见上述对S109的相关描述,此处不再赘述。 [0081] S114、判断该公共服务集标识列表中是否包括未选择过的服务集标识。 [0082] 本发明实施例中,在该公共服务集标识列表中包括未选择过的服务集标识的情况下,执行下述S115,在该公共服务集标识列表中不包括未选择过的服务集标识的情况下,说明无线接入点无法让终端进入关联阶段,无法获取到该终端的真实MAC地址,结束本发明实施例提供的方法流程。 [0083] S115、无线接入点从未选择过的服务集标识中选择一组服务集标识携带在探测响应帧中发送至终端。 [0084] 本发明实施例中,在执行S115之后,可以返回执行上述S111,直到无线接入点确定在该公共服务集标识列表中不包括未选择过的服务集标识,或者无线接入点获取到了终端的真实MAC地址。 [0085] 需要说明的是,本发明实施例提供的获取终端真实MAC地址的方法在上述如图2所示的方法流程中,执行上述S101之后,也可以不执行上述S102-S104,直接执行上述S105-S115以获取终端的真实MAC地址,因此本发明实施例提供的获取终端真实MAC地址的方法还可以如图3所示。对于图3中所示的方法步骤的具体描述可以参见上述对图2所示的相应方法步骤的描述。 [0086] 本发明实施例提供的获取终端的真实MAC地址的方法中,可以接收终端发送的探测请求帧,并在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从管理报文中提取出源MAC地址。由于通常终端发送的关联阶段的管理报文中的源MAC地址为终端的真实MAC地址,因此通过本发明实施例提供的方法可以获取终端的真实MAC地址。如图4所示,本发明实施例提供一种无线接入点,该无线接入点包括收发模块11和处理模块12。 [0087] 其中,该收发模块11,用于接收终端发送的探测请求帧,并且在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文; [0088] 处理模块12,用于从上述管理报文中提取出源MAC地址。 [0089] 可选的,处理模块12,还包括在探测请求帧中的源MAC地址不是虚拟MAC地址的情况下,从探测请求帧中提取出源MAC地址。 [0090] 可选的,探测请求帧中包括终端接入过的无线接入点的服务集标识;收发模块11,具体用于将探测请求帧中的服务集标识携带在探测响应帧中发送至终端。 [0091] 可选的,收发模块11,具体用于从公共服务集标识列表中选择一组服务集标识携带在探测响应帧中发送至终端;该一组服务集标识中包括至少一个服务集标识;并且在接收到终端发送的关联阶段的管理报文的情况下,停止发送探测响应帧;以及在没有接收到终端发送的关联阶段的管理报文、且公共服务集标识列表中包括未选择过的服务集标识的情况下,从公共服务集标识列表中选择另一组服务集标识携带在探测响应帧中发送至终端。 [0092] 可选的,收发模块11,还用于向无线控制器上报从上述管理报文中提取出的源MAC地址; [0093] 或者, [0094] 向无线控制器上报从探测请求帧中提取出的源MAC地址。 [0095] 本发明实施例提供的无线接入点,可以接收终端发送的探测请求帧,并在探测请求帧中的源MAC地址是虚拟MAC地址的情况下,将携带有服务集标识的探测响应帧发送至终端,以及若发送至终端的服务集标识中包含终端接入过的无线接入点的服务集标识,则接收终端发送的关联阶段的管理报文,并从管理报文中提取出源MAC地址。由于通常终端发送的关联阶段的管理报文中的源MAC地址为终端的真实MAC地址,因此通过本发明实施例提供的方法可以获取终端的真实MAC地址。 [0096] 本发明实施例提供的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以通过软件程序、硬件、固件或者其任意组合来实现。当使用软件程序实现时,该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本发明实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。 [0097] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。 [0098] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。 [0099] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。 [0100] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。 [0101] 以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。 |