本发明涉及通信技术领域,特别涉及一种终端设备的特征信息的提取方法及装置。
背景技术:
随着移动通信技术和各种业务应用的快速发展,国内外涌现出大批移动设备制造商,且移动终端和移动操作系统的发展变化也极为迅速。
对于运营商而言,能够掌握移动网络中的这些设备信息和系统信息,一方面,可以更好的了解客户信息,优化网络服务;另一方面,可以通过收集各设备和系统的市场份额来更好的推广产品。但是技术中提取移动设备信息的方法及手段不够完善,无法准确提取移动设备信息及系统信息。
技术实现要素:
本发明的目的在于提供一种终端设备的特征信息的提取方法及装置,使得运营商能够准确的提取移动设备的特征信息,更好的优化网络服务。
为了达到上述目的,本发明实施例提供一种终端设备的特征信息的提取方法,包括:
根据终端设备的特征信息以及每个特征信息对应的用户代理User-Agent字符串,构建标识所述特征信息与所述User-Agent字符串之间的映射关系的User-Agent特征库文件;
采集第一终端设备发送的请求报文,从所述请求报文中获取所述第一终端设备的第一User-Agent字符串;
根据所述第一User-Agent字符串从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息,得到所述第一终端设备的特征信息。
其中,所述终端设备的特征信息包括分别从多个维度获取的特征信息;其中,
所述多个维度至少包括终端设备系统、终端设备厂商以及终端设备型号中的至少一种。
其中,采集第一终端设备发送的请求报文,从所述请求报文中获取所述第一终端设备的第一User-Agent字符串,具体包括:
采集第一终端设备发送的HTTP报文,从所述HTTP报文中获取所述第一终端设备的第一User-Agent字符串。
其中,根据所述第一User-Agent字符串从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息,具体包括:
根据所述第一User-Agent字符串运用多模式匹配AC算法从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息。
其中,所述提取方法还包括:
若所述第一User-Agent字符串对应多个第一特征信息且所述多个第一特征信息属于同一维度的特征信息,获取所述第一特征信息的长度;
选取所述长度最长的第一特征信息,作为所述第一终端设备的特征信息。
本发明实施例还提供一种终端设备的特征信息的提取装置,包括:
构建模块,用于根据终端设备的特征信息以及每个特征信息对应的用户代理User-Agent字符串,构建标识所述特征信息与所述User-Agent字符串之间的映射关系的User-Agent特征库文件;
采集模块,用于采集第一终端设备发送的请求报文,从所述请求报文中获取所第一述终端设备的第一User-Agent字符串;
确定模块,用于根据所述第一User-Agent字符串从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息,得到所述第一终端设备的特征信息。
其中,所述终端设备的特征信息包括分别从多个维度获取的特征信息;其中,
所述多个维度至少包括终端设备系统、终端设备厂商以及终端设备型号中的至少一种。
其中,所述采集模块包括:
采集子模块,用于采集第一终端设备发送的HTTP报文,从所述HTTP报文中获取所述第一终端设备的第一User-Agent字符串。
其中,所述确定模块具体包括:
确定子模块,用于根据所述第一User-Agent字符串运用多模式匹配AC算法从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息。
其中,所述提取装置还包括:
获取模块,用于若所述第一User-Agent字符串对应多个第一特征信息且所述多个第一特征信息属于同一维度的特征信息,获取所述第一特征信息的长度;
信息确定模块,用于选取所述长度最长的第一特征信息,作为所述第一终端设备的特征信息。
本发明的上述技术方案至少具有如下有益效果:
本发明实施例的终端设备的特征信息的提取方法及装置中,首先构建标识终端设备的特征信息与User-Agent字符串之间的映射关系的User-Agent特征库文件,进而根据第一终端设备的待分析的User-Agent字符串从所述User-Agent特征库文件中查找相匹配的第一特征信息,得到第一终端设备的特征信息;该提取方法通过解析User-Agent字符串,获得相关终端设备信息的识别结果,有效的解决了运营商对终端设备信息获取的需求。
附图说明
图1表示本发明实施例的终端设备的特征信息的提取方法的基本步骤流程图;
图2表示AC算法的goto表结构示意图;
图3表示AC算法的output表结构示意图;
图4表示本发明实施例的终端设备的特征信息的提取方法中构建AC特征库文件的步骤流程图;
图5表示本发明实施例的终端设备的特征信息的提取方法中提取特征信息的具体步骤流程图;
图6表示本发明实施例的终端设备的特征信息的提取装置的组成结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有技术中运营商无法准确获取终端设备信息的问题,提供一种终端设备的特征信息的提取方法及装置,首先构建标识终端设备的特征信息与User-Agent字符串之间的映射关系的User-Agent特征库文件,进而根据第一终端设备的待分析的User-Agent字符串从所述User-Agent特征库文件中查找相匹配的第一特征信息,得到第一终端设备的特征信息;该提取方法通过解析User-Agent字符串,获得相关终端设备信息的识别结果,有效的解决了运营商对终端设备信息获取的需求。
如图1所示,本发明实施例提供一种终端设备的特征信息的提取方法,包括:
步骤11,根据终端设备的特征信息以及每个特征信息对应的用户代理User-Agent字符串,构建标识所述特征信息与所述User-Agent字符串之间的映射关系的User-Agent特征库文件;
步骤12,采集第一终端设备发送的请求报文,从所述请求报文中获取所述第一终端设备的第一User-Agent字符串;
步骤13,根据所述第一User-Agent字符串从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息,得到所述第一终端设备的特征信息。
用户代理User Agent(以下简称UA),是HTTP协议中的一部分,属于头域的组成之一,它的信息包括了硬件平台、系统软件、应用软件和用户个人偏好等。如:
User-Agent:AppStore/2.0iOS/7.1.2model/iPhone3,1build/11D257(4;dt:27)
通过UA,能够准确的提取移动设备信息。
本发明的上述实施例中,终端设备的特征信息为能够标识该终端设备的信 息,例如特征信息的序列号、名称等。且每个特征信息都存在有与之相对应的User-Agent字符串,该User-Agent字符串即表明其特征信息的特征字串。上述User-Agent特征库文件中将User-Agent字符串和与其对应的特征信息一一对应的保存,方便后续步骤的调用识别。
进一步的,步骤12中对采集到的第一终端设备的数据域报文,获取该数据域报文中包含的第一UA字符串,从而根据第一UA字符串,从所述UA特征库文件中查找得到第一特征信息,该第一特征信息即为上述第一终端设备的特征信息。
具体的,为了全面的表示终端设备的特征信息,所述终端设备的特征信息包括分别从多个维度获取的特征信息;其中,
所述多个维度至少包括终端设备系统、终端设备厂商以及终端设备型号中的至少一种。其中,终端设备系统的特征信息一般为终端系统的版本号,终端设备厂商的特征信息一般为终端设备厂商的名字,终端设备型号的特征信息一般为终端设备的型号。
进一步的,本发明上述实施例中,步骤12具体包括:
步骤121,采集第一终端设备发送的HTTP报文,从所述HTTP报文中获取所述第一终端设备的第一User-Agent字符串。
本发明实施例中,由于UA是HTTP协议中的一部分,故本发明实施例仅采集第一终端设备发送的HTTP报文,从HTTP.REQ中获取UA字符串,该UA字符串即为第一UA字符串,该UA字符串中包括了第一终端设备的系统软件、硬件平台、系统软件、应用软件或者用户个人偏好等。
进一步的,本发明上述实施例中,步骤13具体包括:
步骤131,根据所述第一User-Agent字符串运用多模式匹配AC算法从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息。
本发明的具体实施例中,具体为基于AC算法的轻量级多模匹配引擎,对UA字符串进行识别,获得相关设备信息的识别结果(即特征信息)。具体的,AC算法是一个经典的多模式匹配算法,由三部分构成,goto表,fail表和output表。可以保证对于给定的长度为n的文本和模式集合P{p1,p2,...pm},在O(n)时 间复杂度内,找到文本中的所有目标模式,而与模式集合的规模m无关。
假如有模式集合P{he,she,his,hers},如图2所示为该模式的goto表、如图3所示为该模式的output表。
AC算法对文本进行匹配的具体步骤是。一开始,将i指向文本text[1...j]的起始位置,然后用text[i]从goto表的状态D[0]开始执行状态跳转。如果存在可行的跳转方案D[0][text[i]]=p,p!=0,则将i增加1,同时转移到状态D[p]。如果不存在可行的转移方案,则考察状态D[p]的fail值,如果fail[p]不等于0,则转移到D[fail[p]],再次查看D[fail[p]][text[i]]是否等于0,直到发现不为0的状态转移方案或者对于所有经历过的fail状态,对于当前输入text[i]都没有非0的转移方案为止,如果确实不存在非0的转移方案,则将i增加1,同时转移到D[0]继续执行跳转。在每次跳转到一个状态D[p]时(fail跳转不算),都需要查看一下output[p]是否指向可输出的模式串,如果有,说明当前位置匹配了某些模式串,将这些模式串输出。
承续上例,本发明的上述实施例中,所述提取方法还包括:
步骤14,若所述第一User-Agent字符串对应多个第一特征信息且所述多个第一特征信息属于同一维度的特征信息,获取所述第一特征信息的长度;
步骤15,选取所述长度最长的第一特征信息,作为所述第一终端设备的特征信息。
需要说明的是,步骤14及步骤15是为了防止同一UA字符串对应多个第一特征信息的情况,本发明实施例是选取其中信息长度最长的特征信息作为第一终端的特征信息。例如,根据第一UA字符串得到的匹配特征信息分别为iphone3和iphone3,1build;则此时选取iphone3,1build作为第一终端设备的特征信息。具体的,选取长度最长的第一特征信息作为第一终端设备的特征信息是基于长度越长精度越高的原理考虑的,仅为本发明的一较佳实施例;其他的如选择长度最短的第一特征信息作为所述第一终端设备的特征信息在某种应用场景下同样适用,即其也应属于本发明实施例的保护范围,其他一些预先设定的方式也同样适用,在此不一一枚举。
下面结合图4及图5对本发明实施例提供的特征信息的提取方法做详细描述:
如图4所示为本发明实施例中构建UA特征库文件的具体过程:
假设该文件从三个维度,设备系统system、终端设备厂商vendor以及终端设备型号brand来覆盖终端设备的特征信息,具体步骤如下:
步骤401,事先以表格的形式分别记录system、vendor、brand等设备信息的特征,表格中主要包括TOKEN_ID(序列号)、NAME(识别结果)、PATTERN数据(UA字符串)等信息;
步骤402,构造system表,获取并填充表中每条记录的TOKEN_ID、NAME和PATTERN的数据;
步骤403,构造vendor表,获取并填充表中每条记录的TOKEN_ID、NAME、PATTERN的数据;
步骤404,构造brand表,获取并填充表中每条记录的TOKEN_ID、NAME、PATTERN的数据;
步骤405,根据上述三个表生成总的UA特征库文件,流程结束。
如图5所示为本发明实施例中提取终端设备的特征信息的具体执行过程:
假设该文件从三个维度,设备系统system、终端设备厂商vendor以及终端设备型号brand来覆盖终端设备的特征信息,当设备特征库中覆盖了UA字符串中的终端设备信息时具体步骤如下:
步骤501,加载上述UA特征库文件;
步骤502,采集HTTP报文,从HTTP.REQ中获取第一UA字符串;
步骤503,根据第一UA字符串运用AC算法查找上述UA特征库文件,获取匹配结果;
步骤504,遍历每个匹配结果。对每个匹配结果,计算匹配部分的长度;对每种类型的识别结果,记录本组内匹配的特征长度最长的ID和长度。
步骤,505,返回终端系统版本号。
步骤506,返回终端品牌。
步骤507,返回终端厂家,结束流程。
为了更好的实现上述目的,如图6所示,本发明实施例还提供一种终端设备的特征信息的提取装置,包括:
构建模块61,用于根据终端设备的特征信息以及每个特征信息对应的用户 代理User-Agent字符串,构建标识所述特征信息与所述User-Agent字符串之间的映射关系的User-Agent特征库文件;
采集模块62,用于采集第一终端设备发送的请求报文,从所述请求报文中获取所第一述终端设备的第一User-Agent字符串;
确定模块63,用于根据所述第一User-Agent字符串从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息,得到所述第一终端设备的特征信息。
具体的,本发明的上述实施例中,所述终端设备的特征信息包括分别从多个维度获取的特征信息;其中,
所述多个维度至少包括终端设备系统、终端设备厂商以及终端设备型号中的至少一种。
具体的,本发明的上述实施例中,所述采集模块62包括:
采集子模块,用于采集第一终端设备发送的HTTP报文,从所述HTTP报文中获取所述第一终端设备的第一User-Agent字符串。
具体的,本发明的上述实施例中,所述确定模块63具体包括:
确定子模块,用于根据所述第一User-Agent字符串运用多模式匹配AC算法从所述User-Agent特征库文件中查找与所述第一User-Agent字符串对应的第一特征信息。
具体的,本发明的上述实施例中,所述提取装置还包括:
获取模块,用于若所述第一User-Agent字符串对应多个第一特征信息且所述多个第一特征信息属于同一维度的特征信息,获取所述第一特征信息的长度;
信息确定模块,用于选取所述长度最长的第一特征信息,作为所述第一终端设备的特征信息。
需要说明的是,本发明的上述实施例提供的终端设备的特征信息的提取装置是应用上述终端设备的特征信息的提取方法的装置,则上述提取方法的所有实施例均适用于该提取装置,且均能达到相同或相似的有益效果。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。