发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是:
1、依赖完善的可靠的Wi-Fi网络,需要部署足够的Wi-Fi接入点设备,需要提供互联网服务,所有智能手机设备需要预先配置。且需要投入大量的硬件成本,管理成本和运营成本;
2、基于Wi-Fi链路数据监听的方案无法控制智能手机设备的探测扫描频率,无法完成高时间精度的追踪和考勤管理;
3、基于Wi-Fi链路数据监听的方案无法在新的智能手机操作系统正常工作,无法发现智能手机设备的真实Wi-Fi MAC地址,进而无法可靠地追踪探测智能手机设备。
为实现上述目的,本发明提供了一种基于Wi-Fi智能终端设备的追踪系统以及追踪方法。通过对广泛使用的,成熟的Wi-Fi智能手机设备进行主动的跟踪,来实现高性价比的,便捷的,可靠的考勤系统以及方法。具体为:
一种基于Wi-Fi智能终端的追踪及考勤系统,其特征在于,包括智能终端、智能终端设备信息管理模块、内存、Wi-Fi 802.11链路数据发送模块、Wi-Fi 802.11链路数据监听模块和数据处理模块、智能终端设备状态跟踪和统计模块。
进一步地,所述智能终端为智能手机,具有Wi-Fi接入功能,并具有唯一的Wi-Fi网卡MAC地址;
进一步地,所述智能终端设备信息管理模块被包括智能终端Wi-Fi MAC地址列表、智能终端序号表以及专用发送者地址列表,
进一步地,将所述智能终端与终端持有者的信息进行关联,即可实现对于终端持有者的状态追踪和考勤。
进一步地,所述专用发送者地址,包括一个未分配的标准组织唯一编号OUI(Organizational Unique Identifier)和对应智能终端的Wi-Fi MAC地址独立序号,采用拼接的方式形成,与每一个智能终端唯一对应;
所述内存包括哈希表,所述哈希表包括智能终端的Wi-Fi MAC地址、独立的序号以及专用发送者地址,其中所述专用发送者地址为哈希表地查找键。
所述Wi-Fi 802.11链路数据发送模块包括发送单元和通讯单元,具有多个通讯信道,被设置为向所有要跟踪的目标智能终端设备发送请求发送(Request To Send)控制帧。
进一步地,所述请求发送控制帧包括控制字段、时长字段、接收方地址字段、发送者地址字段,所述帧控制字段被设置为控制帧(Request To Send),所述时长字段为需要请求占用信道的时间,所述接收方地址字段为想要探测的目标的Wi-Fi MAC地址,所述发送方地址字段为所述智能终端的专用发送者地址。
所述Wi-Fi 802.11链路数据监听模块和数据处理模块,包括监听单元和数据处理分析单元,具有多个通讯信道,被设置为在设备支持的所有Wi-Fi信道中扫描接收智能终端设备发出的探测请求(Probe Request)数据帧,允许发送(Clear To Send)数据帧等Wi-Fi链路数据帧,并过滤不真实的随机MAC地址数据。
进一步地,所述Wi-Fi 802.11链路数据监听模块和数据处理模块被设置为,监听智能终端设备发出的用来扫描可用Wi-Fi接入点的探测请求(Probe Request)管理数据广播帧来发现潜在的智能终端设备。
进一步地,所述智能终端设备发出的探测请求数据帧包括探测请求管理数据广播帧,探测请求管理数据广播帧中的发送发地址即为智能终端设备的Wi-Fi网卡MAC地址;通过监听探测请求中发现的Wi-Fi网卡MAC地址包含6个字节,其中MAC地址第一个字节的最低有效位(LSB)第二位表示这个MAC地址是否为被本地管理的(Locally Administered)私有MAC地址,当这个位被设置的时候(值为1),表示这个地址为随机生成的非真实MAC地址,如果这个位没有为设置(值为0),那么这个MAC地址为全局有效的MAC地址。
进一步地,所述Wi-Fi 802.11链路数据监听模块和数据处理模块被设置为,根据所述Wi-Fi 802.11链路数据发送模块发送的请求发送(Request To Send)控制帧来监听对应的智能终端回应的允许发送(Clear To Send)控制帧,来探测发现区域内的智能终端设备,
进一步地,所述允许发送(Clear To Send)控制帧包括帧控制字段、时长字段、接收方地址字段,所述帧控制字段被设置为控制帧(Clear To Send),时长字段为目标发送方分配的信道可占用时间,所述接收方地址字段对应请求发送(Request To Send)中的发送方地址。
进一步地,所述Wi-Fi 802.11链路数据监听模块和数据处理模块被设置为:接收到允许发送(Clear To Send)控制帧时,在待响应请求发送控制帧列表中查找和该允许发送(Clear To Send)控制帧匹配的请求发送(Request To Send)控制帧。即允许发送(ClearTo Send)控制帧中的接收方字段和请求发送(Request To Send)控制帧中的发送方地址匹配,而且请求发送(Request To Send)控制帧的发送时间和对应的允许发送(Clear ToSend)控制帧的接收时间差异在配置的允许的范围内。当查询到匹配的记录时,记录所匹配的请求发送(Request To Send)控制帧中接收方地址,该地址为被探测到的智能终端设备的Wi-Fi MAC地址。将这个地址和允许发送(Clear To Send)控制帧的接收时间记录到所述智能终端设备状态跟踪和统计模块。
所述智能终端设备状态跟踪和统计模块包括存储单元、运算单元、控制单元和通讯单元,被设置为对每个被追踪的智能终端设备规划执行探测任务。统计所有被追踪的智能终端设备的追踪状态,被探测到的时间记录,探测失败(超时)的时间记录。
进一步地,将所述智能终端与终端持有者的信息进行关联,即可实现对于终端持有者的状态追踪和考勤。
同时,本发明还提供了一种基于Wi-Fi智能终端设备的追踪以及考勤方法,其特征在于,包括以下步骤:
步骤1、建立记录所有要追踪的智能终端设备数据库。
步骤2、通过监听智能终端设备发出的用来扫描可用Wi-Fi接入点的探测请求(Probe Request)来探测并跟踪智能终端设备。
步骤3、向区域内所有目标智能终端设备发送请求发送(Request To Send)控制数据帧。
步骤4、监听目标智能终端设备对请求发送数据帧的回应,根据监听到的允许发送(Clear To Send)控制帧来探测并跟踪智能终端。
步骤5、记录统计所有被监测的智能终端设备的状态,实现可靠的追踪定位和轨迹记录。
进一步地,步骤1具体包括:
1.1 统计记录待追踪的智能终端设备的Wi-Fi网卡MAC地址;
1.2 对智能终端设备根据其Wi-Fi MAC地址按照进行排序,给每一个Wi-Fi MAC地址分配一个独立的序号。
1.3 找出一个未分配的标准组织唯一编号OUI(Organizational UniqueIdentifier),使用和步骤1.2分配的Wi-Fi MAC地址独立序号拼接的方式,为每一个智能终端设备生成一个专用发送者地址。
1.4 将上述步骤中形成的各类信息记录到智能终端设备信息管理模块;
1.5 将上述步骤中智能终端的Wi-Fi MAC地址、独立的序号以及专用发送者地址,加载到内存中的哈希表中,生成的专用发送者地址作为哈希表查找键。
进一步地,所述步骤2通过监听智能终端设备发出的用来扫描可用Wi-Fi接入点的探测请求(Probe Request)管理数据广播帧来发现潜在的智能终端设备,具体包括:
2.1 启动Wi-Fi 802.11链路数据监听模块和数据处理模块,通过在Wi-Fi802.11链路层各个信道(channel)周期性切换,监听智能终端设备发出的用来扫描可用Wi-Fi接入点的探测请求(Probe Request)管理数据广播帧,来发现潜在的智能终端设备。
2.2 对通过监听探测请求中发现的Wi-Fi网卡MAC地址进行筛选过滤,与智能终端监控管理数据库中的数据进行比对,确认监控到的智能终端符合条件并记录齐备监听到的时间。
具体为,当接收到一个Wi-Fi探测请求(Probe Request)管理帧时,检查其MAC地址是否为随机MAC地址,如果MAC地址真实,且包含在被追踪智能终端设备Wi-Fi MAC地址列表中,在智能终端设备状态跟踪和统计模块中记录MAC地址,对应探测请求(Probe Request)接收到的时间。
进一步地,所述步骤3包括:
3.1 启动Wi-Fi 802.11链路数据发送模块,周期性地主动向目标智能终端设备发送请求发送(Request To Send)控制数据帧;
所述请求发送控制数据帧包括,帧控制字段、时长字段、接收方地址字段、发送者地址字段,所述帧控制字段设置为控制帧(Request To Send),所述时长ID字段为需要请求占用信道的时间,所述接收方地址字段为想要探测的目标的Wi-Fi MAC地址。所述发送方地址字段为随机生成的虚拟MAC地址,这个虚拟MAC地址为步骤1中所述的智能终端的专用发送者地址。
所述请求发送(Request To Send)数据帧需要在保持一定时间间隔的情况下发送到Wi-Fi所支持的所有的信道(channel)。
将请求发送(Request To Send)控制帧包含的内容,发送的时间信息记录到智能终端设备状态跟踪和统计模块系统中,记作待响应请求发送控制帧列表。
进一步地,所述时长ID字段为需要请求占用信道的时间毫秒数目,设置100。
进一步地,所述步骤4通过监听目标智能终端设备对所述请求发送(Request ToSend)控制数据帧的回应而发出的允许发送(Clear To Send)控制帧,具体包括:
4.1 启动Wi-Fi 802.11链路数据监听模块和数据处理模块,在设备支持的所有信道内周期性切换,确保在任意通道内的智能终端设备都可以被探测到。通过在Wi-Fi802.11链路层各个信道(channel)周期性切换,监听Wi-Fi所有信道的允许发送(Clear ToSend)控制帧数据,
进一步地,所述允许发送控制帧包括帧控制字段、时长字段、接收方地址字段,所述帧控制字段设置为控制帧(Clear To Send),时长字段为目标发送方分配的信道可占用时间。接收方地址字段对应请求发送(Request To Send)中的发送方地址。
4.2 如果接收到允许发送(Clear To Send)控制帧,检查确认监控到的智能终端符合条件并记录齐备监听到的时间,具体为:
检查帧中的接收者地址,如果在所述哈希列表能找到接收者地址,那么,在智能终端设备状态跟踪和统计模块中记录对应的智能终端Wi-Fi MAC地址、对应请求发送(ClearTo Send)接收到的时间、探测状态(活跃)。
进一步地,当接收到允许发送(Clear To Send)控制帧时,在待响应请求发送控制帧列表中查找和该允许发送(Clear To Send)控制帧匹配的请求发送(Request To Send)控制帧。即允许发送(Clear To Send)控制帧中的接收方字段和请求发送(Request ToSend)控制帧中的发送方地址匹配,而且请求发送(Request To Send)控制帧的发送时间和对应的允许发送(Clear To Send)控制帧的接收时间差异在配置的允许的范围内。当查询到匹配的记录时,记录所匹配的请求发送(Request To Send)控制帧中接收方地址,该地址为被探测到的智能终端设备的Wi-Fi MAC地址。将这个地址和允许发送(Clear To Send)控制帧的接收时间时间记录到所述智能终端设备状态跟踪和统计模块中。
4.3 当完成列表中所有的Wi-Fi MAC地址探测时,开启下一轮探测,根据所述智能终端Wi-Fi MAC地址的序号逐一开始探测。
进一步地,所述步骤5包括:
对上述步骤过程中的所有监测结果进行统计分析。通过智能终端设备状态跟踪和统计模块,对每个被追踪的智能终端设备规划执行探测任务。统计所有被追踪的智能终端设备的追踪状态,被探测到的时间记录,探测失败(超时)的时间记录,实现所有管理对象的追踪与考勤监控。
进一步地,所述智能终端为智能手机,具有Wi-Fi接入功能,并具有唯一的Wi-Fi网卡MAC地址;
进一步地,将所述智能终端与终端持有者的信息进行关联,即可实现对于终端持有者的状态追踪和考勤。
在本发明的一个较佳实施例中,提供了一种基于智能终端设备Wi-Fi数据探测来实现设备跟踪或者员工考勤的系统和方法。具体包括以下内容和特点:
1、Wi-Fi 802.11链路监听模块周期性的切换监听的Wi-Fi信道,以保障能接收到可能多的数据。
2、通过智能终端设备Wi-Fi模块发送的探测请求(Probe Request)管理帧来探测并跟踪智能终端设备。
3、通过检查探测请求(Probe Request)管理帧中的发送方MAC地址第一字节的第二个低位的值来鉴别是否是虚假的随机MAC地址。
4、通过向要探测的目标智能终端设备发送请求发送(Request To Send)控制帧并接收对应的允许发送(Clear To Send)控制帧来探测跟踪智能终端设备。
5、在生成请求发送(Request To Send)控制帧对应的发送方MAC地址时,选取未分配的OUI作为MAC地址前三位,使用目标设备在登记的列表中的序号作为MAC后三位。为所有目标生成唯一,不重复的发送方地址,用来匹配允许发送(Clear To Send)数据帧到对应的目标设备。
6、向目标发送的请求发送(Request To Send)控制帧需要在发送设备支持的所有信道中发送,尽可能保证其能被目标接收并处理
7、进行Wi-Fi 802.11链路层数据监听的Wi-Fi设备可以为一个或者多个,每个硬件可以分别处理一个或者多个信道,以达到更高性能,减少数据丢失
8、发送请求发送(Request To Send)控制帧的Wi-Fi设备可以为一个或者多个,每个硬件分别处理一个或者多个信道,单位时间内覆盖更多的信道,提高发送效率,提高探测频率,进而提高探测成功率。
与现有技术相比,本发明具有以下优点和特点:
实施简单,成本低廉,Wi-Fi监听,数据发送设备可以为支持监听和注入模式的Wi-Fi网卡;智能终端设备无需连接到Wi-Fi网络。
高可靠性,可以探测到在探测请求(Probe Request)管理数据帧中使用随机MAC地址的设备。对新的Apple iOS,Android设备同样有效。
通过主动发送请求发送(Request To Send)控制帧,能控制探测频率,获得详细的探测结果记录,进而得到详尽的考勤记录。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
实施例1
如图1所示,一种基于Wi-Fi智能终端的追踪及考勤系统,包括:智能终端、智能终端设备信息管理模块、内存、Wi-Fi 802.11链路数据发送模块、Wi-Fi 802.11链路数据监听模块和数据处理模块、智能终端设备状态跟踪和统计模块。
在本实施例中,所述智能终端为智能手机,具有Wi-Fi接入功能,并具有唯一的Wi-Fi网卡MAC地址;将所述智能终端与终端持有者的信息进行关联,即可实现对于终端持有者的状态追踪和考勤。
智能终端设备信息管理模块:负责手机存储所有的员工信息,用来跟踪的员工智能手机设备信息,主要包含Wi-Fi MAC地址。
内存包括哈希表,所述哈希表包括智能终端的Wi-Fi MAC地址、独立的序号以及专用发送者地址,其中所述专用发送者地址为哈希表地查找键。
Wi-Fi 802.11链路数据监听模块和数据处理模块:负责在设备支持的所有Wi-Fi信道中扫描接收智能手机设备发出的探测请求(Probe Request),允许发送(Clear ToSend)等Wi-Fi链路数据帧。过滤不真实的随机MAC地址数据。
Wi-Fi 802.11链路数据发送模块:负责向要跟踪的目标智能手机设备的Wi-FiMAC地址发送请求发送(Request To Send)控制帧。请求发送(Request To Send)控制帧必须发送到模块设备支持到所有信道,保证智能手机设备能接收到模块发送到的消息,并作出相应的响应。
智能终端设备状态跟踪和统计模块:负责对每个被追踪的智能手机设备规划执行探测任务。统计所有被追踪的智能手机设备的追踪状态,被探测到的时间记录,探测失败(超时)的时间记录。
结合上述基于Wi-Fi智能终端的追踪系统,实现设备跟踪和员工考勤具体步骤如下:
1、登记所有的要追踪的智能手机设备Wi-Fi MAC地址到智能手机设备信息以及员工信息管理模块的数据库中。
2、对智能手机设备信息以及员工信息管理模块数据库中的所有的Wi-Fi MAC地址按照从小到大的次序排序,给每一个Wi-Fi MAC地址分配一个独立的序号。
3、从Organizational Unique Identifier(OUI)标准组织下载已经分配的OUI列表http://standards-oui.ieee.org/oui.txt,从其中找出一个未分配的OUI。这里我们使用FE-FE-FE。使用和步骤2中分配Wi-Fi MAC地址独立序号拼接的方式,为每一个智能手机设备生成请求发送(Request To Send)帧中需要使用的发送者地址。例如FE-FE-FE-00-00-01,FE-FE-FE-00-00-02,FE-FE-FE-00-00-03等。
4、将生成的所有MAC地址,以及其对应的智能手机设备的Wi-Fi MAC加载到内存中的哈希表中。生成的发送者地址作为哈希表查找键。
5、启动智能手机设备状态跟踪和统计模块,对智能手机设备状态跟踪和统计模块每个MAC地址,生成一个请求发送(Request To Send)控制帧。帧的接收者地址为所追踪智能手机设备等Wi-Fi MAC地址,发送者地址为步骤3中生成的发送者地址。将帧发送到设备支持的所有的通道中。记录帧所有字段,发送时间,开启一个5秒的定时器。
6、启动Wi-Fi 802.11链路数据监听模块和数据处理模块,设备进入监听(Monitor)模式,数据接收模块在设备支持的所有信道内周期性切换,确保在任意通道内的智能手机设备都可以被探测到。当接收到一个Wi-Fi探测请求(Probe Request)管理帧时,根据图3所示的Wi-Fi网卡MAC地址字段检查MAC地址是否为随机MAC地址,如果MAC地址真实,且包含在被追踪智能手机设备Wi-Fi MAC地址列表中,在智能手机设备状态跟踪和统计模块中记录MAC地址,对应探测请求(Probe Request)接收到的时间,探测状态(活跃)。
7、如果接收到允许发送(Clear To Send)控制帧。检查帧中的接收者地址,如果在步骤4生成的哈希列表能找到接收者地址,那么,在智能手机设备状态跟踪和统计模块中记录MAC地址,对应请求发送(Clear To Send)接收到的时间,探测状态(活跃)。停止步骤5中设置的定时器。继续执行第5步,对下一个Wi-Fi MAC地址执行相同的流程。
8、如果步骤5中的定时器触发,在智能手机设备状态跟踪和统计模块中记录MAC地址,对应请求发送(Request To Send)发送的时间,探测状态(不活跃)。继续执行第5步,对下一个Wi-Fi MAC地址执行相同的流程。
9、当完成列表中所有的Wi-Fi MAC地址探测时,开启下一轮探测(执行步骤5中的探测流程),即根据序列号的大小逐一开始探测。
智能手机设备状态跟踪和统计模块中将会包含每个智能手机设备在探测时间点的状态。
实施例2
在本发明的另一较佳实施方式中,提供了一种基于Wi-Fi智能终端的追踪及考勤方法,以智能手机为例作为Wi-Fi智能终端设备。通过对广泛使用的,成熟的Wi-Fi智能手机设备进行主动的跟踪,来实现高性价比的,便捷的,可靠的考勤系统以及方法。本实施例通过追踪企业员工的智能手机设备来完成对员工的追踪。要求员工登记其智能手机设备的Wi-Fi网卡MAC地址到系统中。被追踪等智能手机设备不需要连接到可用的Wi-Fi网络,只需要智能手机设备保持Wi-Fi功能开启。
如图2所示,为本发明一种基于Wi-Fi智能终端的追踪及考勤方法的流程图,该方法主要包括:
S1、建立记录所有要追踪的智能终端设备数据库。
S2、监听探测请求(Probe Request)来探测并跟踪智能终端设备。
S3、向区域内所有目标智能终端设备发送请求发送(Request To Send)控制数据帧。
S4、通过监听到的允许发送(Clear To Send)控制帧来探测并跟踪智能终端。
S5、记录统计所有被监测的智能终端设备的状态,进行追踪定位和轨迹记录。
具体过程如下:
通过在Wi-Fi 802.11链路层各个信道(channel)周期性切换,监听智能手机设备发出的用来扫描可用Wi-Fi接入点的探测请求(Probe Request)管理数据广播帧来发现潜在的智能手机设备。探测请求广播帧中的发送发地址(Transmitter Address)即为智能手机设备的Wi-Fi网卡MAC地址。
对通过监听接受探测请求中发现的Wi-Fi网卡MAC地址进行筛选过滤。去除新的智能手机设备发出的随机MAC地址。探测发现的Wi-Fi网卡MAC地址字段如图3所示,MAC地址包含6个字节,其中MAC地址第一个字节的最低有效位(LSB)第二位(下图中位1)表示这个MAC地址是否为被本地管理的(Locally Administered)私有MAC地址,当这个位被设置的时候(值为1),表示这个地址为随机生成的非真实MAC地址,系统忽略这个MAC地址,不记录这个MAC地址。如果这个位没有为设置(值为0),那么这个MAC地址为全局有效的MAC地址,系统记录这个MAC地址,以及其被监听扫描到的时间。
对于在发送的探测请求数据帧中不包含真实Wi-Fi MAC地址的智能手机设备,或者是不发送探测请求数据帧,或者是发送探测请求数据帧频率低于系统所要求到追踪频率的智能手机设备,系统采取主动扫描的方式来发现附近可能存在的智能手机设备。
为了解决部分智能手机设备不发送探测请求(Probe Request)管理数据帧或者发送的探测请求(Probe Request)管理数据帧中不包含真实的Wi-Fi MAC地址的问题。系统周期性地主动向目标智能手机设备发送请求发送(Request To Send)控制数据帧。并监听目标智能手机设备对该数据帧的回应允许发送(Clear To Send)控制帧。
请求发送(Request To Send)控制帧结构如图4所示。帧控制字段设置为控制帧(Request To Send),时长ID字段为需要请求占用信道的时间毫秒数目,设置其值为100,接收方地址为想要探测的目标的Wi-Fi MAC地址。发送方地址字段为随机生成的虚拟MAC地址,这个MAC地址可以使用未分配的组织唯一编号(Organizational Unique Identifier,OUI,MAC地址的前三个字节)加序列号的方式生成,按照协议计算帧校验和并写入数据帧,发送数据帧。
请求发送(Request To Send)数据帧需要在保持一定时间间隔的情况下发送到Wi-Fi所支持的所有的信道(channel)。
将请求发送(Request To Send)控制帧包含的内容,发送的时间信息记录到系统中。记作待响应请求发送控制帧列表。
通过在Wi-Fi 802.11链路层各个信道(channel)周期性切换,监听Wi-Fi所有信道的控制帧数据,处理所有的允许发送(Clear To Send)控制帧,允许发送(Clear To Send)控制帧数据结构如图5所示。帧控制字段为Control,Clear To Send,时间为目标发送方分配的信道可占用时间。接收方地址对应请求发送(Request To Send)中的发送方地址。帧数据结构不包含发送这个帧的设备的地址。需要经过分析接收方地址字段来分析出发送方。
当接收到允许发送(Clear To Send)控制帧时,在待响应请求发送控制帧列表中查找和该允许发送(Clear To Send)控制帧匹配的请求发送(Request To Send)控制帧。即允许发送(Clear To Send)控制帧中的接收方字段和请求发送(Request To Send)控制帧中的发送方地址匹配,而且请求发送(Request To Send)控制帧的发送时间和对应的允许发送(Clear To Send)控制帧的接收时间差异在配置的允许的范围内。当查询到匹配的记录时,记录所匹配的请求发送(Request To Send)控制帧中接收方地址,该地址为被探测到的智能手机设备的Wi-Fi MAC地址。将这个地址和允许发送(Clear To Send)控制帧的接收时间时间记录到系统中。
发送请求探测列表中查找发送方地址和Clear To Send帧中接收方地址匹配的记录。如果找到匹配记录,那么发送请求探测列表匹配项目中接收方地址的对应智能手机设备被探测到。
综合通过监听探测请求(Probe Request)管理帧数据,删除虚假随机MAC地址,发送请求发送(Request To Send)控制帧并监听对应的允许发送(Clear To Send)控制帧的方式,系统可以高效,可靠的探测到智能手机设备,进而完成对员工的跟踪,实现可靠的考勤系统。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。