著录项信息
专利名称 | 移动终端识别方法和装置 |
申请号 | CN201410193829.8 | 申请日期 | 2014-05-08 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-09-03 | 公开/公告号 | CN104023046A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 深圳市深信服电子科技有限公司 | 申请人地址 | 广东省深圳市南山区学苑大道1001号南山智园A1栋一层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深信服科技股份有限公司 | 当前权利人 | 深信服科技股份有限公司 |
发明人 | 严德志 |
代理机构 | 深圳市世纪恒程知识产权代理事务所 | 代理人 | 胡海国 |
摘要
本发明公开了一种移动终端识别方法。包括下列步骤中的任意一种或多种的组合:将终端发送的http请求重定向至预设的重定向页面,通过所述重定向页面获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端;检测终端在连接到WiFi网络后,是否向预设域名发送http请求,若是,则所述终端为移动终端;检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,若是,则所述终端为移动终端;根据终端上发送的应用数据来识别应用是否为移动终端上的应用,若是,则所述终端为移动终端。本发明还相应公开了一种移动终端识别装置。应用本发明技术方案,能够提高移动终端识别的准确率和识别速度。
移动终端识别方法和装置\n技术领域\n[0001] 本发明涉及计算机技术领域,特别是涉及一种移动终端识别方法和装置。\n背景技术\n[0002] 移动终端是指可以在移动中使用的计算机设备,包括手机(如具有多种应用的智能手机)以及平板电脑等。\n[0003] 目前,移动终端已经占据了较大的市场,并且随着网络技术的进步和集成电路的发展,移动终端已经具有强大的处理能力,成为一个综合信息处理平台,上网已经成为移动终端一个不可或缺的功能。\n[0004] 移动终端的上网行为需要规范化的管理,对移动终端上网行为管理的首要问题是对移动终端的识别。在传统技术中,通过获取终端向服务端发送的http(Hypertext transfer protocol,超文本传输协议)请求头部信息,从其中的移动终端名称等信息来判断终端是否是移动终端。而目前存在较多的非移动终端的应用是基于浏览器内核开发的,其中部分应用发起的http请求中也填充了移动终端的一些信息,从而导致传统的识别方法误判率比较高。\n发明内容\n[0005] 基于此,有必要提供一种移动终端识别方法和装置,应用本方法和装置,能够降低误判,提高移动终端识别的准确率。\n[0006] 一种移动终端识别方法,包括下列步骤中的任意一种或任意多种的组合:\n[0007] 将终端发送的http请求重定向至预设的重定向页面,通过所述重定向页面获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端;\n[0008] 检测终端在连接到WiFi网络后,是否向预设域名发送http请求,若是,则所述终端为移动终端;\n[0009] 检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,若是,则所述终端为移动终端;\n[0010] 根据终端上发送的应用数据来识别应用是否为移动终端上的应用,若是,则所述终端为移动终端。\n[0011] 在其中一个实施例中,所述将终端发送的http请求重定向至预设的重定向页面,通过所述重定向页面获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端的步骤,包括:\n[0012] 将所述终端浏览器或类浏览器应用发送的GET方法的http请求重定向至重定向页面;\n[0013] 所述重定向页面通过程序代码获取所述终端的DOM对象信息;\n[0014] 对所述DOM对象信息进行解析,获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端。\n[0015] 在其中一个实施例中,所述将所述终端浏览器或类浏览器应用发送的GET方法的http请求重定向至重定向页面,包括:\n[0016] 在预置时间段内,对一网络地址对应的终端的http请求只进行一次重定向,将所述http请求重定向至重定向页面。\n[0017] 在其中一个实施例中,在所述重定向页面通过程序代码获取所述终端的DOM对象信息之后,所述重定向页面将所述终端发送的http请求重定向到所述http请求对应的页面。\n[0018] 在其中一个实施例中,所述检测终端在连接到WiFi网络后,是否向预设域名发送http请求的步骤,包括:\n[0019] 对所述终端发送的GET方法的http请求进行http头部特征分析,判断所述http请求是否请求预设的域名或预设的文件。\n[0020] 在其中一个实施例中,所述检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,包括是否满足下列的一种:\n[0021] 所述终端发送的http请求中UA字段是否包含Android操作系统中虚拟机名称和Android操作系统名称的组合,若是,则所述终端为安装有Android操作系统的移动终端;\n[0022] 所述终端发送的http请求中UA字段是否包含IOS操作系统的网络编程接口层名称和操作系统原型名称的组合,若是,则所述终端为安装有IOS操作系统的移动终端。\n[0023] 一种移动终端识别装置,包括下列单元的任意一种或任意多种的组合:\n[0024] 重定向机制识别模块,用于将终端发送的http请求重定向至预设的重定向页面,通过所述重定向页面获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端;\n[0025] WiFi连接特征识别模块,用于检测终端在连接到WiFi网络后,是否向预设域名发送http请求,若是,则所述终端为移动终端;\n[0026] UA特征识别模块,用于检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,若是,则所述终端为移动终端;\n[0027] 应用特征识别模块,用于根据终端上发送的应用数据来识别应用是否为移动终端上的应用,若是,则所述终端为移动终端。\n[0028] 在其中一个实施例中,所述重定向机制识别模块,用于将所述终端浏览器或类浏览器应用发送的GET方法的http请求重定向至重定向页面;以及用于通过程序代码获取所述终端的DOM对象信息;以及用于对所述DOM对象信息进行解析,获取所述终端的终端信息,并根据所述终端信息判断所述终端是否为移动终端。\n[0029] 在其中一个实施例中,所述重定向机制识别模块在预置时间段内,对一网络地址对应的终端的http请求只进行一次重定向,将所述http请求重定向至重定向页面。\n[0030] 在其中一个实施例中,所述重定向机制识别模块,还用于将所述终端发送的http请求重定向到所述http请求对应的页面。\n[0031] 在其中一个实施例中,所述WiFi连接特征识别模块,用于对所述终端发送的GET方法的http请求进行http头部特征分析,判断所述http请求是否请求预设的域名或预设的文件。\n[0032] 在其中一个实施例中,所述UA特征识别模块,用于判断所述终端发送的http请求中UA字段是否包含Android操作系统中虚拟机名称和Android操作系统名称的组合,若是,则所述终端为安装有Android操作系统的移动终端;以及用于判断所述终端发送的http请求中UA字段是否包含IOS操作系统的网络编程接口层名称和操作系统原型名称的组合,若是,则所述终端为安装有IOS操作系统的移动终端。\n[0033] 上述移动终端识别方法和装置,通过多种方式中的一种或多种组合来识别移动终端,包括重定向机制识别方式、WiFi连接特征识别方式、UA特征识别方式和应用特征识别方式,相比于传统技术中通过http请求中终端名称等信息来识别移动终端的技术方案,能够降低误判,提高移动终端识别的准确率和识别速度。\n附图说明\n[0034] 图1为一个实施例中通过重定向机制识别移动终端的流程示意图;\n[0035] 图2为一个实施例中通过WiFi连接特征识别移动终端的流程示意图;\n[0036] 图3为一个实施例中通过UA特征识别移动终端的流程示意图;\n[0037] 图4为一个实施例中的移动终端识别装置的结构示意图。\n具体实施方式\n[0038] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0039] 在本发明一个实施例中,提供了一种移动终端识别方法。该方法可以应用于服务端对上网的终端进行识别,识别出其中的移动终端。该方法可以包含下列识别方式的一种或任意多种的组合:\n[0040] (1)重定向机制识别方式。其原理为将终端发送的http请求重定向至预设的重定向页面,通过重定向页面获取终端的终端信息,并根据终端信息判断终端是否为移动终端。\n[0041] (2)WiFi连接特征识别方式。移动终端在连接WiFi网络后,与固定计算机终端如PC不同,会发出特定的网络是否可用的探测包,利用这一特征,根据终端在连接到WiFi网络后,是否向预设域名发送http请求,若是,则判定该终端为移动终端。\n[0042] (3)UA特征识别方式。移动终端中安装有轻型操作系统(所谓轻型操作系统,是指操作系统具有以下特征:拥有一套基本的计算机操作系统内核,拥有最基本最常用的功能如系统自引导、图形界面、基本指令集、网络连接、外设控、承载应用等。轻型操作系统对硬件设备要求不高,仅需要非常小的存储空间),在移动终端向服务端发送http请求时,在http请求中UA字段中会出现移动终端操作系统对应的关键词信息,因此对UA(User Agent,http协议头部的一部分,由终端自动填充,包含终端一些软硬件信息)字段特征进行分析可以识别出移动终端,尤其适用于安装有android(一种基于Linux的自由及开放源代码的操作系统)操作系统或IOS(苹果公司开发的移动操作系统)操作系统的移动终端。故UA特征识别方式可以概括为:检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,若是,则终端为移动终端。\n[0043] (4)应用特征识别方式。根据终端上发送的应用数据来识别应用是否为移动终端上的应用,从而识别终端是否为移动终端。具体的,为识别应用是否为移动终端上安装的应用,可以通过应用层将应用特征规则下发给驱动,在数据包经过时,匹配应用特征并在数据包的连接跟踪表记录识别结果。\n[0044] 参见图1,为一个实施例中,通过重定向机制识别移动终端的流程示意图。其流程包括:\n[0045] 步骤102,过滤终端发送的http请求。\n[0046] 服务端对各种终端的http请求进行过滤。\n[0047] 步骤104,判断http请求是否为GET方法的http请求。\n[0048] 具体的,http请求包括GET方法(Method,浏览器等应用设置的数据属性)的http请求、POST方法的http请求等(浏览器等以method属性设置的方法将表单数据提交给服务器进行处理,其中,GET方法的http请求用于终端的客户端向服务端请求数据,而POST方法的http请求用于终端向服务端发送数据)。本实施例对GET方法的http请求进行后续步骤的处理,对其它类型的http请求不做处理,执行步骤126。\n[0049] 步骤106,对http请求进行http头部特征分析,识别http请求是否为终端浏览器或类浏览器应用发出的http GET请求(即GET方法的http请求)。\n[0050] 具体的,服务端对http请求进行http头部特征分析,识别浏览器或类浏览器(http请求头部与浏览器类似,能够解析html语言和执行JavaScript代码)发出的http GET请求,并进行重定向。其中,在本实施例中,浏览器或类浏览器应用发出的http请求,其http头部特征包括下列a至c:\n[0051] a.http请求头部中Accept字段包含“xhtml+xml”。\n[0052] b.Accept-Language字段非“*/*”。\n[0053] c.UA(User Agent)字段的字符数超过一阀值。经过大量测试,该阀值可以但不限为120。\n[0054] 例如在下段中为一http GET请求的头部,其UA(User-Agent)字段的字符数超过阀值,其Accept字段包含“xhtml+xml”(可以执行xhtml和xml语言),其Accept-Language字段为“zh-cn”(客户端语言版本为中文简体),因此该http请求为浏览器或类浏览器应用发出的GET方法的http请求。\n[0055] “GET/HTTP/1.1\n[0056] Host:news.baidu.com\n[0057] User-Agent:Mozilla/5.0(ipad;CPU OS5_1_1like Mac OS X)AppleWebkit/\n534.46(KHTML,like Gecko)Version/5.1Mobile/9B206Safari/7534.48.3\n[0058] Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=\n0.8\n[0059] Cache-Control:max-age=0\n[0060] Accept-Language:zh-cn\n[0061] Accept-Encoding:gzip,deflate\n[0062] ……”\n[0063] 步骤108,根据http请求头部特征判断是否进行重定向。\n[0064] 具体的,根据步骤106中对http请求进行头部特征分析,如果http请求为浏览器或类类浏览器发出的http GET请求,则需要进行重定向,对其返回一指向重定向页面的链接,对终端的客户端进行重定向(将网络请求重新转到其它位置,在本实施例中,将终端上客户端发送的http请求重新定位到重定向页面)。否则,执行步骤126。\n[0065] 步骤110,判断是否重定向至重定向页面。\n[0066] 若是,执行步骤120。若否执行步骤112。\n[0067] 步骤120,重定向页面通过代码获取终端的DOM对象信息。\n[0068] 具体的,重定向页面可以包含预定的JavaScript代码,当终端上的客户端重定向到该重定向页面,执行预定的JavaScript代码,向服务端或预定义的URL(Uniform Resource Locator,统一资源定位符)发送终端的DOM对象信息,其中DOM(Document Object Model,文件对象模型)对象包括但不限于窗口(window)、屏幕(screen)等。\n[0069] 步骤122,对DOM对象信息进行解析,获取终端信息,并根据终端信息判断终端是否为移动终端。\n[0070] 具体的,对DOM对象信息进行解析,可以获取终端的终端信息,如操作系统、CPU类型、是否支持Activex控件、终端屏幕分辨率等,并且该终端信息无法通过配置文件进行修改,而传统技术中终端名称等信息可以通过配置文件进行修改,由此,重定向机制识别方式提高了识别准确率,降低了误判。\n[0071] 在本实施例中,为减少终端的计算负担,并且避免终端重复的进行重定向而导致终端不能请求原始页面,在预置时间段内,对同一网络地址对应的终端的http请求只进行一次重定向,具体见图1中步骤112至步骤118。\n[0072] 步骤112,获取终端的IP地址,并计算该IP地址的hash值。\n[0073] 具体的,获取终端的IP地址,并根据hash(散列算法,一种消息摘要算法)算法将IP地址计算为一唯一对应的hash值。\n[0074] 步骤114,通过hash值查找重定向列表中预置时间段内对应的终端是否已进行重定向。\n[0075] 具体的,重定向列表中记录了已经进行重定向的终端的IP地址对应的hash值,根据hash值进行检索,判断重定向列表中是否已存在该hash值,若是,则对应的终端已进行重定向。\n[0076] 步骤116,判断重定向列表中是否存在该hash值。\n[0077] 若是,执行步骤126,否则执行步骤118。\n[0078] 步骤118,重定向至重定向页面,更新重定向列表。\n[0079] 此外,在本实施例中,重定向页面中的代码能够实现刷新机制,即将终端发送的http请求重定向到该http请求对应的原始页面,如图1中的步骤124,其实现方法包括window对象的reload方法(将http请求对应的原始页面保存在缓存中,在实现刷新时,从缓存中读取http请求对应的原始页面)等等。\n[0080] 综上,本实施例中,将终端发送的http请求重定向至预设的重定向页面,通过重定向页面获取终端的终端信息,并根据终端信息判断终端是否为移动终端,可以概括为:将终端浏览器或类浏览器应用发送的GET方法的http请求重定向至重定向页面;重定向页面通过程序代码获取终端的DOM对象信息;对DOM对象信息进行解析,获取终端的终端信息,并根据终端信息判断终端是否为移动终端。\n[0081] 参见图2,为一个实施例中,通过WiFi连接特征识别移动终端的流程示意图。其流程包括:\n[0082] 步骤202,过滤终端发送的http请求。\n[0083] 服务端对终端的http请求进行过滤,可参考传统技术。\n[0084] 步骤204,判断http请求是否为GET方法的http请求。\n[0085] 若是,执行步骤206,否则返回。\n[0086] 步骤206,对http头部特征进行分析,判断http请求是否请求预设域名。\n[0087] 具体的,可以从http请求头部的Host字段判断终端请求的域名的URL。移动终端在连接WiFi网络后,会向特定网络发出探测包,其中这些特定的网络对应的域名包括:\nclients1.google.com、clients2.google.com、clients3.google.com……clients9.google.com、www.airport.us等等。而安装不同操作系统的移动终端会进一步请求不同域名中的不同文件,例如安装windows操作系统的移动终端会请求ncsi.txt文件,安装android操作系统的移动终端会请求generate_204,而对于安装IOS操作系统的移动终端有时会指定所要请求的文件,如请求success.html,而有时不会指定所请求的文件。例如在下段中为一个安装android系统的移动终端的http请求部分内容:\n[0088] “GET/generate_204HTTP/1.1\n[0089] User-Agent:Dalvik/1.6.0(Linux;U;Android4.1.2;GT-I9300Build/JZ054k)[0090] Host:clients3.google.com\n[0091] Connection:keep-Alive\n[0092] Accept-Encoding:gzip\n[0093] ……”\n[0094] 其中,在Host字段,http请求所请求的域名为clients3.google.com,并且该http GET请求所请求的文件为generate_204,由此可以判断该终端为安装Android操作系统的移动终端。\n[0095] 参见图3,为一个实施例中,通过UA特征识别移动终端的流程示意图。其流程包括:\n[0096] 步骤302,过滤终端发送的http请求。\n[0097] 步骤304,对http请求中UA字段进行分析,判断其中是否包含移动终端操作系统对应的关键词信息。\n[0098] 具体的,本实施例对所有的http请求进行分析,包括http GET请求和httpPOST请求。由于UA字段的信息与移动终端的操作系统紧密相关,因此可以从终端的http请求中是否有移动终端操作系统的关键词信息来识别终端是否为移动终端。例如可以判断终端发送的http请求中UA字段是否包含Android操作系统中虚拟机名称“Dalvik”和Android操作系统名称“Android”的组合,如果包含,则该终端为安装android操作系统的移动终端。又例如,可以判断终端发送的http请求中UA字段是否包含IOS操作系统的网络编程接口层名称“CFNetwork”和操作系统原型名称“Darwin”的组合,如果包含,则该终端为安装IOS操作系统的移动终端。\n[0099] 在下段中,以一http POST请求为例,在其UA字段中,包含了“Dalvik”和“Android”的关键词信息,则发送该http请求的终端为移动终端。\n[0100] “POST/client.action?\n[0101] ……\n[0102] Content-Length:11\n[0103] User-Agent:Dalvik/1.6.0(Linux;U;Android4.0.4;GT-N8010Build/IMM76D)[0104] ……”\n[0105] 上述移动终端识别方法,通过多种方式中的一种或多种组合来识别移动终端,包括重定向机制识别方式、WiFi连接特征识别方式、UA特征识别方式和应用特征识别方式,相比于传统技术中通过http请求中终端名称等信息来识别移动终端的技术方案,能够降低误判,提高移动终端识别的准确率。\n[0106] 参见图4,在一个实施例中提供了一种移动终端识别装置,该移动终端识别装置可以应用于一服务器,对发送http请求的终端进行识别,从而判断出其中哪些终端为移动终端,进而能够为服务器进行规范的管理提供依据。本实施例所提供的移动终端识别装置包括重定向机制识别模块402、WiFi连接特征识别模块404、UA特征识别模块406和应用特征识别模块408。需要指明的是,在其它的实施例中,移动终端识别装置可以仅包括上述模块的任意一种或者任意多种的组合。\n[0107] 本实施例提供的移动终端识别装置,其工作原理如下:\n[0108] 重定向机制识别模块402,用于将终端发送的http请求重定向至预设的重定向页面,通过重定向页面获取终端的终端信息,并根据终端信息判断终端是否为移动终端。具体的,本实施例中,重定向机制识别模块402用于将终端浏览器或类浏览器应用发送的GET方法的http请求重定向至重定向页面,通过重定向页面的程序代码获取终端的DOM对象信息,并对DOM对象信息进行解析,获取终端的终端信息,以及根据终端信息判断终端是否为移动终端。此外,本实施例中,重定向机制识别模块402在预置时间段内,对一网络地址对应的终端的http请求只进行一次重定向,将所述http请求重定向至重定向页面。在重定向页面获取终端的DOM对象信息后,重定向机制识别单元402将终端发送的http请求重定向到http请求对应的原始页面。\n[0109] WiFi连接特征识别模块404,用于检测终端在连接到WiFi网络后,是否向预设域名发送http请求,若是,则所述终端为移动终端。\n[0110] UA特征识别模块406,用于检测终端发送的http请求中的UA字段中是否包含移动终端操作系统对应的关键词信息,若是,则终端为移动终端。例如判断终端发送的http请求中UA字段是否包含Android操作系统中虚拟机名称“Dalvik”和“Android”的组合,若是,则终端为安装有Android操作系统的移动终端;又例如判断终端发送的http请求中UA字段是否包含IOS操作系统的网络编程接口层名称“CFNetwork”和操作系统原型名称“Darwin”的组合,若是,则终端为安装有IOS操作系统的移动终端。\n[0111] 应用特征识别模块408,用于根据终端上发送的应用数据识别应用是否为移动终端上的应用,若是,则终端为移动终端。\n[0112] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |