具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明提供的移动设备的设备指纹处理方法实施例一的流程示意图,如图1所示,该方法包括如下步骤:
步骤S100,对待查询移动设备的设备基础信息和设备检测信息进行合并处理,得到待查询移动设备的设备完整信息。
其中,待查询移动设备可为手机、PAD等设备。为了能够更加精准地确定待查询移动设备的设备指纹,在步骤S100中,对待查询移动设备的设备基础信息和设备检测信息进行合并处理,从而合并得到待查询移动设备的设备完整信息。具体地,可以待查询移动设备的设备基础信息为基础,将设备检测信息填充到设备基础信息中,从而得到设备完整信息。
步骤S101,根据设备完整信息,构造数据键,并在缓存器中查询数据键对应的数据值。
具体地,可利用设备完整信息中的特定字段值构造数据键。在构造了数据键之后,在缓存器中查询数据键对应的数据值。例如,缓存器为Cache,在该缓存器中以数据键值对的形式存储设备指纹。
步骤S102,判断查询得到的数据键对应的数据值是否为空;若是,则执行步骤S104;若否,则执行步骤S103。
如果判断得到数据键对应的数据值为空,说明缓存器中没有存储该待查询移动设备的设备指纹,从缓存器中无法查询到待查询移动设备的设备指纹,则执行步骤S104;如果判断得到数据键对应的数据值不为空,说明从缓存器中查询到了待查询移动设备的设备指纹,则执行步骤S103。
步骤S103,将数据值中所包含的设备指纹赋值给待查询移动设备。
在经步骤S102判断得到数据键对应的数据值不为空的情况下,说明从缓存器中查询到了待查询移动设备的设备指纹,那么将数据值中所包含的设备指纹赋值给待查询移动设备。在具体应用中,在数据值不为空的情况下,数据值可包括用户唯一标识和设备指纹等,将数据值中所包含的设备指纹赋值给待查询移动设备。
步骤S104,构造与设备完整信息对应的查询语句,利用查询语句在数据库中进行查询,得到查询结果集合。
在经步骤S102判断得到数据键对应的数据值为空的情况下,说明从缓存器中无法查询到待查询移动设备的设备指纹,那么构造与设备完整信息对应的查询语句,利用查询语句在数据库中进行查询,会得到数据库返回的查询结果集合。其中,数据库可以为Solr(Search On Lucene Replication)或elasticSearch等数据库,这类数据库主要用于海量数据索引,搜索效率高。
步骤S105,依据查询结果集合,确定待查询移动设备的设备指纹。
在得到了查询结果集合之后,在步骤S105中,依据查询结果集合,确定待查询移动设备的设备指纹。
根据本发明实施例提供的移动设备的设备指纹处理方法,能够得到移动设备的设备完整信息,利用该设备完整信息能够更加精准地确定移动设备的设备指纹,提高了设备指纹的覆盖率和准确率;另外,优先从缓存器中进行查询,在从缓存器中查询不到的情况下,再从数据库中进行查询,采用这种嵌套查询方式有效地提高了设备指纹的查询效率,优化了设备指纹处理方式。
图2示出了本发明提供的移动设备的设备指纹处理方法实施例二的流程示意图,如图2所示,该方法包括如下步骤:
步骤S200,获取待查询移动设备的设备基础信息。
具体地,通过待查询移动设备上的预设软件开发工具包,获取待查询移动设备的设备基础信息。其中,待查询移动设备上的预设软件开发工具包以包依赖或库依赖的方式集成在待查询移动设备上的第三方应用程序中,通过预设软件开发工具包,根据预设系统接口获取待查询移动设备的设备基础信息。若所获取的设备基础信息经加密处理后的,那么还需对所获取的设备基础信息进行解密处理。
步骤S201,对待查询移动设备进行检测,得到设备检测信息。
具体地,对待查询移动设备的代理服务器、虚拟专用网络、虚拟机以及模拟器中的至少一项进行检测,得到设备检测信息。在具体应用中,可利用p0f指纹识别工具,方便地对待查询移动设备的代理服务器、虚拟专用网络、虚拟机以及模拟器中的至少一项进行检测。
步骤S202,对待查询移动设备的设备基础信息和设备检测信息进行合并处理,得到待查询移动设备的设备完整信息。
具体地,可以待查询移动设备的设备基础信息为基础,将设备检测信息填充到设备基础信息中,从而得到设备完整信息。
例如,在步骤S200中所获取的待查询移动设备的设备基础信息为Map<String,String>类型的信息,那么还需要将Map<String,String>类型的信息转换成Map<String,Object>类型的信息,即将其中的数据从String数据类型转换成各自的数据类型,比如Integer,Float,List等,然后将步骤S201得到的设备检测信息填充到上述Map<String,Object>类型的信息中,从而得到类型为Map<String,Object>类型的设备完整信息。其中,设备完整信息包括:设备硬件属性信息、设备软件属性信息和用户行为属性信息。具体地,设备硬件属性信息包括以下信息的一种或多种:MAC地址、设备品牌、设备型号、设备类型、IMEI、用户唯一标识、硬件参数标识、CPU信息、磁盘容量以及屏幕分辨率。设备软件属性信息包括以下信息的一种或多种:操作系统类型、系统设置信息、网络设置信息、协议指纹、浏览器属性以及地理位置。用户行为属性信息包括以下信息的一种或多种:用户访问频次、用户访问时间以及用户操作轨迹。
将获取得到的设备基础信息和检测得到的设备检测信息进行合并处理,能够得到更加完备的设备信息,即设备完整信息,有利于更加精准地确定待查询移动设备的设备指纹。
步骤S203,根据设备完整信息,构造数据键,并在缓存器中查询数据键对应的数据值。
具体地,可利用设备完整信息中的特定字段值构造数据键。例如,针对具有IOS系统的待查询移动设备,可利用设备完整信息中的用户唯一标识、硬件参数标识、CPU信息、磁盘容量、屏幕分辨率、设备型号、操作系统类型、MAC地址和设备类型等中的至少一项构造数据键;针对具有Android系统的待查询移动设备,可利用设备完整信息中的用户唯一标识、CPU信息、设备型号、MAC地址、设备类型、硬件参数标识等中的至少一项构造数据键。
在构造了数据键之后,在缓存器中查询数据键对应的数据值。例如,缓存器为Cache,在该缓存器中以数据键值对的形式存储设备指纹。
步骤S204,判断查询得到的数据键对应的数据值是否为空;若是,则执行步骤S206;若否,则执行步骤S205。
步骤S205,将数据值中所包含的设备指纹赋值给待查询移动设备。
在经步骤S204判断得到数据键对应的数据值不为空的情况下,说明从缓存器中查询到了待查询移动设备的设备指纹,那么将数据值中所包含的设备指纹赋值给待查询移动设备。在具体应用中,在数据值不为空的情况下,数据值可包括用户唯一标识和设备指纹等,将数据值中所包含的设备指纹赋值给待查询移动设备。
步骤S206,构造与设备完整信息对应的查询语句,利用查询语句在数据库中进行查询,得到查询结果集合。
在经步骤S204判断得到数据键对应的数据值为空的情况下,说明从缓存器中无法查询到待查询移动设备的设备指纹,那么构造与设备完整信息对应的查询语句,利用查询语句在数据库中进行查询,会得到数据库返回的查询结果集合。其中,数据库可以为Solr或elasticSearch等数据库。
步骤S207,判断查询结果集合是否为空集;若是,则执行步骤S208;若否,则执行步骤S209。
如果判断得到查询结果集合为空集,说明数据库中没有存储与该待查询移动设备相似的设备的设备信息,则执行步骤S208;如果判断得到查询结果集合不为空集,说明数据库中存储有与该待查询移动设备相似的设备的设备信息,则执行步骤S209。
步骤S208,根据设备完整信息,生成设备指纹,将所生成的设备指纹赋值给待查询移动设备。
在经步骤S207判断得到查询结果集合为空集的情况下,根据设备完整信息,生成设备指纹,将所生成的设备指纹赋值给待查询移动设备。在具体应用中,所生成的设备指纹可包括8位属性编码、14位时间戳编码以及2位校验码。
步骤S209,计算待查询移动设备的设备完整信息与查询结果集合中的各个设备的设备信息之间的相似度。
在经步骤S207判断得到查询结果集合不为空集的情况下,说明数据库中存储有与该待查询移动设备相似的设备的设备信息,其中,查询结果集合中的各个设备的设备信息即为与该待查询移动设备相似的设备的设备信息。为了能够从查询结果集合中找到与该待查询移动设备最为相似的设备,在步骤S209中,需要计算待查询移动设备的设备完整信息与查询结果集合中的各个设备的设备信息之间的相似度。
步骤S210,判断是否存在至少一个相似度大于或等于预设相似度阈值;若是,则执行步骤S211;若否,则执行步骤S208。
本领域技术人员可根据实际需要设置预设相似度阈值,此处不做限定。如果判断得到存在至少一个相似度大于或等于预设相似度阈值,说明查询结果集合中存在与该待查询移动设备比较相似的设备的设备信息,则执行步骤S211;如果判断得到不存在至少一个相似度大于或等于预设相似度阈值,说明查询结果集合中不存在与该待查询移动设备比较相似的设备的设备信息,则执行步骤S208,根据设备完整信息,生成设备指纹,将所生成的设备指纹赋值给待查询移动设备。
步骤S211,将相似度最高的设备的设备指纹赋值给待查询移动设备。
在步骤S210判断得到存在至少一个相似度大于或等于预设相似度阈值的情况下,将相似度最高的设备的设备指纹赋值给待查询移动设备,即认为相似度最高的设备和待查询移动设备是两个相同的设备。
进一步,在确定了待查询移动设备的设备指纹之后,根据待查询移动设备的设备完整信息和对应的设备指纹,对缓存器和数据库中存储的信息进行更新,从而获得更新后的缓存器和数据库,以便后续能够提供更为精准的设备指纹查询服务。
根据本发明实施例提供的移动设备的设备指纹处理方法,将从多种途径获得的设备信息进行合并处理,能够得到移动设备的设备完整信息,利用该设备完整信息能够更加精准地确定移动设备的设备指纹;优先从缓存器中进行查询,在从缓存器中查询不到的情况下,再从数据库中进行查询,采用这种嵌套查询方式有效地提高了设备指纹的查询效率;另外,采用相似度阈值匹配的方式,进一步提高了设备指纹的准确率和覆盖率,优化了设备指纹处理方式。
图3示出了本发明提供的移动设备的设备指纹处理装置实施例一的结构框图,如图3所示,该装置包括:合并模块300、第一构造模块310、第一查询模块320、判断模块330、赋值模块340、第二构造模块350、第二查询模块360和确定模块370。
合并模块300用于:对待查询移动设备的设备基础信息和设备检测信息进行合并处理,得到待查询移动设备的设备完整信息。
第一构造模块310用于:根据设备完整信息,构造数据键。
具体地,可利用设备完整信息中的特定字段值构造数据键。
第一查询模块320用于:在缓存器中查询数据键对应的数据值。
判断模块330用于:判断第一查询模块320查询得到的数据键对应的数据值是否为空。
如果判断模块330判断得到数据键对应的数据值为空,说明缓存器中没有存储该待查询移动设备的设备指纹,从缓存器中无法查询到待查询移动设备的设备指纹,则触发第二构造模块350;如果判断得到数据键对应的数据值不为空,说明从缓存器中查询到了待查询移动设备的设备指纹,则触发赋值模块340。
赋值模块340用于:若判断模块330判断得到数据值不为空,则将数据值中所包含的设备指纹赋值给待查询移动设备。
第二构造模块350用于:若判断模块330判断得到数据值为空,则构造与设备完整信息对应的查询语句。
第二查询模块360用于:利用查询语句在数据库中进行查询,得到查询结果集合。
确定模块370用于:依据查询结果集合,确定待查询移动设备的设备指纹。
根据本发明实施例提供的移动设备的设备指纹处理装置,能够得到移动设备的设备完整信息,利用该设备完整信息能够更加精准地确定移动设备的设备指纹,提高了设备指纹的覆盖率和准确率;另外,优先从缓存器中进行查询,在从缓存器中查询不到的情况下,再从数据库中进行查询,采用这种嵌套查询方式有效地提高了设备指纹的查询效率,优化了设备指纹处理方式。
图4示出了本发明提供的移动设备的设备指纹处理装置实施例一的结构框图,如图4所示,该装置包括:获取模块400、检测模块410、合并模块420、第一构造模块430、第一查询模块440、判断模块450、赋值模块460、第二构造模块470、第二查询模块480和确定模块490。
获取模块400用于:获取待查询移动设备的设备基础信息。
其中,获取模块400还用于:通过待查询移动设备上的预设软件开发工具包,获取待查询移动设备的设备基础信息。
检测模块410用于:对待查询移动设备进行检测,得到设备检测信息。
其中,检测模块410还用于:对待查询移动设备的代理服务器、虚拟专用网络、虚拟机以及模拟器中的至少一项进行检测,得到设备检测信息。在具体应用中,检测模块410可利用p0f指纹识别工具,方便地对待查询移动设备的代理服务器、虚拟专用网络、虚拟机以及模拟器中的至少一项进行检测。
合并模块420用于:对待查询移动设备的设备基础信息和设备检测信息进行合并处理,得到待查询移动设备的设备完整信息。
其中,设备完整信息包括:设备硬件属性信息、设备软件属性信息和用户行为属性信息。具体地,设备硬件属性信息包括以下信息的一种或多种:MAC地址、设备品牌、设备型号、设备类型、IMEI、用户唯一标识、硬件参数标识、CPU信息、磁盘容量以及屏幕分辨率。设备软件属性信息包括以下信息的一种或多种:操作系统类型、系统设置信息、网络设置信息、协议指纹、浏览器属性以及地理位置。用户行为属性信息包括以下信息的一种或多种:用户访问频次、用户访问时间以及用户操作轨迹。
第一构造模块430用于:根据设备完整信息,构造数据键。
第一查询模块440用于:在缓存器中查询数据键对应的数据值。
判断模块450用于:判断第一查询模块440查询得到的数据键对应的数据值是否为空。
赋值模块460用于:若判断模块450判断得到数据值不为空,则将数据值中所包含的设备指纹赋值给待查询移动设备。
第二构造模块470用于:若判断模块450判断得到数据值为空,则构造与设备完整信息对应的查询语句。
第二查询模块480用于:利用查询语句在数据库中进行查询,得到查询结果集合。
确定模块490用于:依据查询结果集合,确定待查询移动设备的设备指纹。
其中,确定模块490包括:第一判断单元491、生成单元492、计算单元493和第二判断单元494。
具体地,第一判断单元491用于:判断查询结果集合是否为空集。
如果第一判断单元491判断得到查询结果集合为空集,说明数据库中没有存储与该待查询移动设备相似的设备的设备信息,则触发生成单元492;如果第一判断单元491判断得到查询结果集合不为空集,说明数据库中存储有与该待查询移动设备相似的设备的设备信息,则触发计算单元493。
生成单元492用于:若第一判断单元491判断得到查询结果集合为空集,则根据设备完整信息,生成设备指纹。
赋值模块460还用于:将生成单元492生成的设备指纹赋值给待查询移动设备。
计算单元493用于:若第一判断单元491判断得到查询结果集合不为空集,则计算待查询移动设备的设备完整信息与查询结果集合中的各个设备的设备信息之间的相似度。
第二判断单元494用于:判断是否存在至少一个相似度大于或等于预设相似度阈值。
赋值模块460还用于:若第二判断单元494判断得到存在至少一个相似度大于或等于预设相似度阈值,则将相似度最高的设备的设备指纹赋值给待查询移动设备。
生成单元492还用于:若第二判断单元494判断得到不存在至少一个相似度大于或等于预设相似度阈值,则根据设备完整信息,生成设备指纹。
根据本发明实施例提供的移动设备的设备指纹处理装置,将从多种途径获得的设备信息进行合并处理,能够得到移动设备的设备完整信息,利用该设备完整信息能够更加精准地确定移动设备的设备指纹;优先从缓存器中进行查询,在从缓存器中查询不到的情况下,再从数据库中进行查询,采用这种嵌套查询方式有效地提高了设备指纹的查询效率;另外,采用相似度阈值匹配的方式,进一步提高了设备指纹的准确率和覆盖率,优化了设备指纹处理方式。
本发明还提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的移动设备的设备指纹处理方法。
图5示出了本发明提供的服务器实施例的结构示意图,本发明具体实施例并不对服务器的具体实现做限定。
如图5所示,该服务器可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述移动设备的设备指纹处理方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:对待查询移动设备的设备基础信息和设备检测信息进行合并处理,得到待查询移动设备的设备完整信息;根据设备完整信息,构造数据键,并在缓存器中查询数据键对应的数据值;判断查询得到的数据键对应的数据值是否为空;若数据值不为空,则将数据值中所包含的设备指纹赋值给待查询移动设备;若数据值为空,则构造与设备完整信息对应的查询语句,利用查询语句在数据库中进行查询,得到查询结果集合;依据查询结果集合,确定待查询移动设备的设备指纹。
在一种可选的实施方式中,程序510进一步使得处理器502执行以下操作:判断查询结果集合是否为空集;若查询结果集合为空集,则根据设备完整信息,生成设备指纹,将所生成的设备指纹赋值给待查询移动设备;若查询结果集合不为空集,则计算待查询移动设备的设备完整信息与查询结果集合中的各个设备的设备信息之间的相似度;判断是否存在至少一个相似度大于或等于预设相似度阈值;若存在至少一个相似度大于或等于预设相似度阈值,则将相似度最高的设备的设备指纹赋值给待查询移动设备。
在一种可选的实施方式中,程序510进一步使得处理器502执行以下操作:若不存在至少一个相似度大于或等于预设相似度阈值,则根据设备完整信息,生成设备指纹,将所生成的设备指纹赋值给待查询移动设备。
在一种可选的实施方式中,程序510进一步使得处理器502执行以下操作:获取待查询移动设备的设备基础信息;对待查询移动设备进行检测,得到设备检测信息。
在一种可选的实施方式中,程序510进一步使得处理器502执行以下操作:通过待查询移动设备上的预设软件开发工具包,获取待查询移动设备的设备基础信息。
在一种可选的实施方式中,程序510进一步使得处理器502执行以下操作:对待查询移动设备的代理服务器、虚拟专用网络、虚拟机以及模拟器中的至少一项进行检测,得到设备检测信息。
在一种可选的实施方式中,设备完整信息包括:设备硬件属性信息、设备软件属性信息和用户行为属性信息。
在一种可选的实施方式中,设备硬件属性信息包括以下信息的一种或多种:MAC地址、设备品牌、设备型号、设备类型、IMEI、用户唯一标识、硬件参数标识、CPU信息、磁盘容量以及屏幕分辨率。
在一种可选的实施方式中,设备软件属性信息包括以下信息的一种或多种:操作系统类型、系统设置信息、网络设置信息、协议指纹、浏览器属性以及地理位置。
在一种可选的实施方式中,用户行为属性信息包括以下信息的一种或多种:用户访问频次、用户访问时间以及用户操作轨迹。
程序510中各步骤的具体实现可以参见上述移动设备的设备指纹处理实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,能够得到移动设备的设备完整信息,利用该设备完整信息能够更加精准地确定移动设备的设备指纹,提高了设备指纹的覆盖率和准确率;另外,优先从缓存器中进行查询,在从缓存器中查询不到的情况下,再从数据库中进行查询,采用这种嵌套查询方式有效地提高了设备指纹的查询效率,优化了设备指纹处理方式。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。