基于mac区段的互联网终端型号识别方法、装置、终端及存储介质
技术领域
1.本发明涉及一种互联网终端型号识别方案,具体而言,涉及一种基于mac区段的互联网终端型号识别方法、装置、终端及存储介质,属于通信技术领域。
背景技术:2.在现有技术条件下,针对互联网终端设备的型号识别方案,主要有以下两种实现方式:一、对用户访问网络所产生的请求包中的ua(user-agent,用户代理)信息进行正则匹配,进而实现终端设备的型号识别;二、建立mac(media access control,媒体存取控制)地址与终端型号间的对应关系表,通过表中录入的、已知的mac地址进行终端设备的型号识别。
3.但无论上述何种的技术实现方式,在实际的应用过程中,存在着比较明显的缺陷。在前者方案中,需要终端设备存在对应的网络访问行为,同时受互联网行业中加密技术的影响,终端设备在访问网络时会产生大量的无效信息、或由其所产生的ua信息并不能被准确地获取和解析。而在后者方案中,方案的实现依赖于所建立的对应关系表,随着表中所存储的终端型号数量的增加,对存储设备的内存占用和后续的搜索时长都会产生较大的影响,同时,如果在对应关系的存储过程中出现脏数据(即实际的终端设备型号与mac地址不匹配),会导致后续一系列连锁的错误判断,进而大幅降低方案的鲁棒性。
4.综上所述,如何在现有技术的基础上提出一种全新的互联网终端型号识别方案,以提升对终端设备型号的识别能力、克服现有技术中的诸多弊端,也就成为了本领域内技术人员亟待解决的问题。
技术实现要素:5.鉴于现有技术存在上述缺陷,本发明提出了一种基于mac区段的互联网终端型号识别方法、装置、终端及存储介质,具体如下。
6.一种基于mac区段的互联网终端型号识别方法,包括:对mac地址和终端型号间的对应数据集进行数据序列化,初始化一用于存储mac地址和终端型号的滑动窗口,依序输入mac数据及终端型号数据至所述滑动窗口中并对数据进行判断处理,根据处理结果输出mac区段与终端型号间的对应关系库;将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配,若成功匹配则输出相应的终端型号,否则输出mac地址不识别。
7.优选地,所述对终端型号对应的数据集进行数据序列化,初始化一用于存储mac地址和对应终端型号的滑动窗口,依序输入mac数据及终端型号数据至所述滑动窗口中并对数据进行判断处理,根据处理结果输出mac区段与终端型号间的对应关系库,包括:获取mac地址和终端型号间的对应数据集,根据mac地址对数据集内的数据进行排序并完成数据序列化;
初始化一个固定长度的、用于存储mac地址和终端型号的滑动窗口,所述mac地址和终端型号为一组二元组数据;依序将mac数据及终端型号数据输入所述滑动窗口中,判断当前输入数据是否为数据集中的最后一个数据,若是则保存mac区段与终端型号间的对应关系库,若不是则按序进入下一流程;判断当前所述滑动窗口中不同终端类型的比例是否在预设阈值以上,若是则保存mac区段及相对应的终端型号至所述mac区段与终端型号间的对应关系库中,随后返回至初始化所述滑动窗口操作,若不是则返回至将mac数据及终端型号数据输入所述滑动窗口操作。
8.优选地,所述将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配,若成功匹配则输出相应的终端型号,否则输出mac地址不识别,包括:加载所述mac区段与终端型号间的对应关系库,将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配;判断待查询的mac地址的oui是否存在于所述mac区段与终端型号间的对应关系库中,若是则按序进入下一流程,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别;判断现有mac区段是否可以覆盖待查询的mac地址,若是则待查询的mac地址对应的终端型号为该mac区段对应的终端型号、输出相应的终端型号,若否则执行后续流程;获取与所述待查询的mac地址的接近的上下两个mac区段,判断待查询的mac地址与距离最近的mac区段的起始位之间的距离是否小于设定阈值,若是则待查询的mac地址对应的终端型号为距离最近的mac区段对应的终端型号、输出相应的终端型号,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别。
9.一种基于mac区段的互联网终端型号识别装置,包括:对应关系库生成模块,用于对mac地址和终端型号间的对应数据集进行数据序列化,初始化一用于存储mac地址和终端型号的滑动窗口,依序输入mac数据及终端型号数据至所述滑动窗口中并对数据进行判断处理,根据处理结果输出mac区段与终端型号间的对应关系库;终端型号识别模块,用于将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配,若成功匹配则输出相应的终端型号,否则输出mac地址不识别。
10.优选地,所述对应关系库生成模块包括:数据序列化单元,用于获取mac地址和终端型号间的对应数据集,根据mac地址对数据集内的数据进行排序并完成数据序列化;窗口初始化单元,用于初始化一个固定长度的、用于存储mac地址和终端型号的滑动窗口,所述mac地址和终端型号为一组二元组数据;生成第一判断单元,用于依序将mac数据及终端型号数据输入所述滑动窗口中,判断当前输入数据是否为数据集中的最后一个数据,若是则保存mac区段与终端型号间的对应关系库,若不是则按序进入下一流程;生成第二判断单元,用于判断当前所述滑动窗口中不同终端类型的比例是否在预设阈值以上,若是则保存mac区段及相对应的终端型号至所述mac区段与终端型号间的对应
关系库中,随后返回至初始化所述滑动窗口操作,若不是则返回至将mac数据及终端型号数据输入所述滑动窗口操作。
11.优选地,所述终端型号识别模块包括:关系库加载单元,用于加载所述mac区段与终端型号间的对应关系库,将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配;识别第一判断单元,用于判断待查询的mac地址的oui是否存在于所述mac区段与终端型号间的对应关系库中,若是则按序进入下一流程,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别;识别第二判断单元,用于判断现有mac区段是否可以覆盖待查询的mac地址,若是则待查询的mac地址对应的终端型号为该mac区段对应的终端型号、输出相应的终端型号,若否则执行后续流程;识别第三判断单元,用于获取与所述待查询的mac地址的接近的上下两个mac区段,判断待查询的mac地址与距离最近的mac区段的起始位之间的距离是否小于设定阈值,若是则待查询的mac地址对应的终端型号为距离最近的mac区段对应的终端型号、输出相应的终端型号,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别。
12.一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述基于mac区段的互联网终端型号识别方法中的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行所述计算机程序时实现如上所述基于mac区段的互联网终端型号识别方法中的步骤。
14.本发明的优点主要体现在以下几个方面:本发明的一种基于mac区段的互联网终端型号识别方法,使用mac区段代替具体的mac地址进行识别匹配,极大地解决了目前mac识别过程中所存在的内存占用问题。同时,方法引入了滑动窗口技术,在生成对应关系库时可过滤大部分的异常数据,避免了现有对应关系库中可能出现的脏数据问题,保证了识别方法的有效性和准确性。
15.本发明的一种基于mac区段的互联网终端型号识别装置、终端及存储介质,能够以系统化、标准化的处理流程,高效、准确地完成对互联网终端设备的型号识别,方案整体的鲁棒性强,在识别范围和准确率方面大幅领先现有的终端型号识别方案。
16.本发明也为同领域内的其他相关问题提供了参考,可以以此为依据进行拓展延伸,运用于同领域内其他与设备识别相关的技术方案中,具有十分广阔的应用前景。
17.以下便结合实施例附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握。
附图说明
18.图1为本发明方法中s1部分的流程示意图;图2为本发明方法中s2部分的流程示意图;图3为本发明装置的结构示意图。
具体实施方式
19.本发明综合分析了现有的mac识别方案中所存在的内存占用问题,以及现有对应关系库中可能存在的脏数据问题,提出了一种基于mac区段的互联网终端型号识别方法、装置、终端及存储介质,不仅增强了识别方案的鲁棒性,还提升整个识别方案的识别准确率及识别范围,具体如下。
20.一方面,本发明涉及一种基于mac区段的互联网终端型号识别方法,包括:s1、对mac地址和终端型号间的对应数据集进行数据序列化,初始化一用于存储mac地址和终端型号的滑动窗口,依序输入mac数据及终端型号数据至所述滑动窗口中并对数据进行判断处理,根据处理结果输出mac区段与终端型号间的对应关系库。这一步骤的具体流程如图1所示,包括如下操作。
21.s11、获取mac地址和终端型号间的对应数据集,根据mac地址对数据集内的数据进行排序并完成数据序列化;s12、初始化一个固定长度的、用于存储mac地址和终端型号的滑动窗口,所述mac地址和终端型号为一组二元组数据;s13、依序将mac数据及终端型号数据输入所述滑动窗口中,判断当前输入数据是否为数据集中的最后一个数据,若是则保存mac区段与终端型号间的对应关系库,若不是则按序进入s14;s14、判断当前所述滑动窗口中不同终端类型的比例是否在预设阈值以上,若是则保存mac区段及相对应的终端型号至所述mac区段与终端型号间的对应关系库中,随后返回至s12,若不是则返回至s13。
22.在s1步骤中需要重点说明的是,在生成对应关系库的过程中,窗口大小以及不同终端型号的预设阈值的设定都会影响最终对应关系库的质量,而其参数的设置则是直接由原始的mac地址和终端型号数据决定的,不同的输入数据的最优参数会存在一些偏差。
23.其中,窗口大小由同一个终端型号连续次数的统计量决定,即先对全量数据做数据序列化,统计每个终端型号出现的次数。例如前十个mac的终端型号分别为[型号1,型号1,型号2,型号1,型号1,型号1,型号1,型号1,型号1,型号1],则统计次数为[2,1,7]。最终对所有次数进行统计分析,取其八分位点作为最终的窗口大小,本发明中所用输入为亿级终端数据,用以上方法得到最佳窗口大小为20。
[0024]
不同终端型号的预设阈值大小由窗口中同一个终端型号的比例的统计量决定,即将窗口长度固定,步长为1在序列化后的数据上滑动,统计每次滑动时窗口中同一个终端型号所占的最大比例,一减该比例即为本发明中所用预设阈值,可用以下公式表示:,其中,为不同终端型号的预设阈值,为第i个窗口中同一个终端型号所占的最大比例,由于采集数据中可能存在脏数据,这里过滤比例小于0.5的数据。
[0025]
s2、将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配,若成功匹配则输出相应的终端型号,否则输出mac地址不识别。这一步骤的具体流程如图2所示,包括如下操作。
[0026]
s21、加载所述mac区段与终端型号间的对应关系库,将待查询的mac地址在所述
mac区段与终端型号间的对应关系库中进行匹配;s22、判断待查询的mac地址的oui是否存在于所述mac区段与终端型号间的对应关系库中,若是则按序进入s23,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别;s23、判断现有mac区段是否可以覆盖待查询的mac地址,若是则待查询的mac地址对应的终端型号为该mac区段对应的终端型号、输出相应的终端型号,若否则进入下一步骤;s24、获取与所述待查询的mac地址的接近的上下两个mac区段,判断待查询的mac地址与距离最近的mac区段的起始位之间的距离是否小于设定阈值,若是则待查询的mac地址对应的终端型号为距离最近的mac区段对应的终端型号、输出相应的终端型号,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别。
[0027]
此处的操作逻辑本质上是将待查询的mac地址分别与前一个mac区段的终止mac地址和后一个mac区段的起始mac地址相比较,以二者中距离较近的mac区段所对应的终端型号作为输出。
[0028]
需要重点说明的是,设定阈值由同一个区间中相邻两个mac的最大差值的最大值决定,即统计不同区间中相邻两个mac的最大差值,最终取最大值作为设定阈值,即设定阈值为:,其中,为设定阈值,为第i个区间中两个相邻mac的最大差值。
[0029]
下面以mac地址“04000138e920”为例,引证上述方案的有效性,该mac地址的识别流程如下:(1)加载对应关系库到内存中;(2)开发终端识别接口,接受mac地址为“04000138e920”;(3)截取mac前六位为oui,具体值为“040001”,若该oui存在于对应关系库中,进行下一步查询,否则输出无法识别;(4)进行区间匹配,查找包含“04000138e920”的区间,若存在区间[“04000138e128”,“04000138f144”],则输出该区间对应的终端型号;(5)如果存在区间[“04000138e269”,“04000138e909”]对应终端型号a,区间[“04000138ea32”,“04000138f092”]对应终端型号b,有|0x04000138e909-0x04000138e920|《设定阈值,且|0x04000138e909-0x04000138e920|《|0x04000138ea32-04000138e920|,则输出识别终端型号为a,否则输出无法识别。
[0030]
由于本发明中使用mac地址区间代替具体mac地址值,因此在一定程度上提升了终端识别的识别范围,同时在生成mac区间时过滤了部分脏数据,理论上终端识别的识别准确率也会上升,同时对真实的mac地址进行了测试,测试结果表明识别的识别范围和准确率均有一定程度的提升。
[0031]
综上所述,本发明的一种基于mac区段的互联网终端型号识别方法,使用mac区段代替具体的mac地址进行识别匹配,极大地解决了目前mac识别过程中所存在的内存占用问题。同时,方法引入了滑动窗口技术,在生成对应关系库时可过滤大部分的异常数据,避免了现有对应关系库中可能出现的脏数据问题,保证了识别方法的有效性和准确性。
[0032]
另一方面,如图3所示,本发明还涉及一种基于mac区段的互联网终端型号识别装置,包括:对应关系库生成模块,用于对mac地址和终端型号间的对应数据集进行数据序列化,初始化一用于存储mac地址和终端型号的滑动窗口,依序输入mac数据及终端型号数据至所述滑动窗口中并对数据进行判断处理,根据处理结果输出mac区段与终端型号间的对应关系库;终端型号识别模块,用于将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配,若成功匹配则输出相应的终端型号,否则输出mac地址不识别。
[0033]
所述对应关系库生成模块具体包括:数据序列化单元,用于获取mac地址和终端型号间的对应数据集,根据mac地址对数据集内的数据进行排序并完成数据序列化;窗口初始化单元,用于初始化一个固定长度的、用于存储mac地址和终端型号的滑动窗口,所述mac地址和终端型号为一组二元组数据;生成第一判断单元,用于依序将mac数据及终端型号数据输入所述滑动窗口中,判断当前输入数据是否为数据集中的最后一个数据,若是则保存mac区段与终端型号间的对应关系库,若不是则按序进入下一流程;生成第二判断单元,用于判断当前所述滑动窗口中不同终端类型的比例是否在预设阈值以上,若是则保存mac区段及相对应的终端型号至所述mac区段与终端型号间的对应关系库中,随后返回至初始化所述滑动窗口操作,若不是则返回至将mac数据及终端型号数据输入所述滑动窗口操作。
[0034]
所述终端型号识别模块具体包括:关系库加载单元,用于加载所述mac区段与终端型号间的对应关系库,将待查询的mac地址在所述mac区段与终端型号间的对应关系库中进行匹配;识别第一判断单元,用于判断待查询的mac地址的oui是否存在于所述mac区段与终端型号间的对应关系库中,若是则按序进入下一流程,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别;识别第二判断单元,用于判断现有mac区段是否可以覆盖待查询的mac地址,若是则待查询的mac地址对应的终端型号为该mac区段对应的终端型号、输出相应的终端型号,若否则执行后续流程;识别第三判断单元,用于获取与所述待查询的mac地址的接近的上下两个mac区段,判断待查询的mac地址与距离最近的mac区段的起始位之间的距离是否小于设定阈值,若是则待查询的mac地址对应的终端型号为距离最近的mac区段对应的终端型号、输出相应的终端型号,若否则无法识别该mac地址所对应的终端型号、输出mac地址不识别。
[0035]
又一方面,本发明还涉及一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前文所述基于mac区段的互联网终端型号识别方法中的步骤,例如步骤s1~s2。或者,处理器执行计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图3所示的各模块的功能。
[0036]
再一方面,本发明还涉及一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行所述计算机程序时实现如前文所述基于
mac区段的互联网终端型号识别方法中的步骤。
[0037]
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,asic)中。另外,该asic可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0038]
与方法内容相对应的,本发明的一种基于mac区段的互联网终端型号识别装置、终端及存储介质,能够以系统化、标准化的处理流程,高效、准确地完成对互联网终端设备的型号识别,方案整体的鲁棒性强,在识别范围和准确率方面大幅领先现有的终端型号识别方案。
[0039]
本发明也为同领域内的其他相关问题提供了参考,可以以此为依据进行拓展延伸,运用于同领域内其他与设备识别相关的技术方案中,具有十分广阔的应用前景。
[0040]
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神和基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0041]
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。