移動(dòng)終端識(shí)別方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種移動(dòng)終端識(shí)別方法。包括下列步驟中的任意一種或多種的組合:將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端;檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端;檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則所述終端為移動(dòng)終端;根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則所述終端為移動(dòng)終端。本發(fā)明還相應(yīng)公開了一種移動(dòng)終端識(shí)別裝置。應(yīng)用本發(fā)明技術(shù)方案,能夠提高移動(dòng)終端識(shí)別的準(zhǔn)確率和識(shí)別速度。
【專利說明】移動(dòng)終端識(shí)別方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種移動(dòng)終端識(shí)別方法和裝置。
【背景技術(shù)】
[0002]移動(dòng)終端是指可以在移動(dòng)中使用的計(jì)算機(jī)設(shè)備,包括手機(jī)(如具有多種應(yīng)用的智能手機(jī))以及平板電腦等。
[0003]目前,移動(dòng)終端已經(jīng)占據(jù)了較大的市場(chǎng),并且隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步和集成電路的發(fā)展,移動(dòng)終端已經(jīng)具有強(qiáng)大的處理能力,成為一個(gè)綜合信息處理平臺(tái),上網(wǎng)已經(jīng)成為移動(dòng)終端一個(gè)不可或缺的功能。
[0004]移動(dòng)終端的上網(wǎng)行為需要規(guī)范化的管理,對(duì)移動(dòng)終端上網(wǎng)行為管理的首要問題是對(duì)移動(dòng)終端的識(shí)別。在傳統(tǒng)技術(shù)中,通過獲取終端向服務(wù)端發(fā)送的http (Hypertexttransfer protocol,超文本傳輸協(xié)議)請(qǐng)求頭部信息,從其中的移動(dòng)終端名稱等信息來判斷終端是否是移動(dòng)終端。而目前存在較多的非移動(dòng)終端的應(yīng)用是基于瀏覽器內(nèi)核開發(fā)的,其中部分應(yīng)用發(fā)起的http請(qǐng)求中也填充了移動(dòng)終端的一些信息,從而導(dǎo)致傳統(tǒng)的識(shí)別方法誤判率比較高。
【發(fā)明內(nèi)容】
[0005]基于此,有必 要提供一種移動(dòng)終端識(shí)別方法和裝置,應(yīng)用本方法和裝置,能夠降低誤判,提高移動(dòng)終端識(shí)別的準(zhǔn)確率。
[0006]一種移動(dòng)終端識(shí)別方法,包括下列步驟中的任意一種或任意多種的組合:
[0007]將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端;
[0008]檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端;
[0009]檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則所述終端為移動(dòng)終端;
[0010]根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則所述終端為移動(dòng)終端。
[0011]在其中一個(gè)實(shí)施例中,所述將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端的步驟,包括:
[0012]將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面;
[0013]所述重定向頁面通過程序代碼獲取所述終端的DOM對(duì)象信息;
[0014]對(duì)所述DOM對(duì)象信息進(jìn)行解析,獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端。[0015]在其中一個(gè)實(shí)施例中,所述將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面,包括:
[0016]在預(yù)置時(shí)間段內(nèi),對(duì)一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,將所述http請(qǐng)求重定向至重定向頁面。
[0017]在其中一個(gè)實(shí)施例中,在所述重定向頁面通過程序代碼獲取所述終端的DOM對(duì)象信息之后,所述重定向頁面將所述終端發(fā)送的http請(qǐng)求重定向到所述http請(qǐng)求對(duì)應(yīng)的頁面。 [0018]在其中一個(gè)實(shí)施例中,所述檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求的步驟,包括:
[0019]對(duì)所述終端發(fā)送的GET方法的http請(qǐng)求進(jìn)行http頭部特征分析,判斷所述http請(qǐng)求是否請(qǐng)求預(yù)設(shè)的域名或預(yù)設(shè)的文件。
[0020]在其中一個(gè)實(shí)施例中,所述檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,包括是否滿足下列的一種:
[0021]所述終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱和Android操作系統(tǒng)名稱的組合,若是,則所述終端為安裝有Android操作系統(tǒng)的移動(dòng)終端;
[0022]所述終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱和操作系統(tǒng)原型名稱的組合,若是,則所述終端為安裝有IOS操作系統(tǒng)的移動(dòng)終端。
[0023]一種移動(dòng)終端識(shí)別裝置,包括下列單元的任意一種或任意多種的組合:
[0024]重定向機(jī)制識(shí)別模塊,用于將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端;
[0025]WiFi連接特征識(shí)別模塊,用于檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端;
[0026]UA特征識(shí)別模塊,用于檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則所述終端為移動(dòng)終端;
[0027]應(yīng)用特征識(shí)別模塊,用于根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則所述終端為移動(dòng)終端。
[0028]在其中一個(gè)實(shí)施例中,所述重定向機(jī)制識(shí)別模塊,用于將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面;以及用于通過程序代碼獲取所述終端的DOM對(duì)象信息;以及用于對(duì)所述DOM對(duì)象信息進(jìn)行解析,獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端。
[0029]在其中一個(gè)實(shí)施例中,所述重定向機(jī)制識(shí)別模塊在預(yù)置時(shí)間段內(nèi),對(duì)一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,將所述http請(qǐng)求重定向至重定向頁面。
[0030]在其中一個(gè)實(shí)施例中,所述重定向機(jī)制識(shí)別模塊,還用于將所述終端發(fā)送的http請(qǐng)求重定向到所述http請(qǐng)求對(duì)應(yīng)的頁面。
[0031]在其中一個(gè)實(shí)施例中,所述WiFi連接特征識(shí)別模塊,用于對(duì)所述終端發(fā)送的GET方法的http請(qǐng)求進(jìn)行http頭部特征分析,判斷所述http請(qǐng)求是否請(qǐng)求預(yù)設(shè)的域名或預(yù)設(shè)的文件。
[0032]在其中一個(gè)實(shí)施例中,所述UA特征識(shí)別模塊,用于判斷所述終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱和Android操作系統(tǒng)名稱的組合,若是,則所述終端為安裝有Android操作系統(tǒng)的移動(dòng)終端;以及用于判斷所述終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱和操作系統(tǒng)原型名稱的組合,若是,則所述終端為安裝有IOS操作系統(tǒng)的移動(dòng)終端。
[0033]上述移動(dòng)終端識(shí)別方法和裝置,通過多種方式中的一種或多種組合來識(shí)別移動(dòng)終端,包括重定向機(jī)制識(shí)別方式、WiFi連接特征識(shí)別方式、UA特征識(shí)別方式和應(yīng)用特征識(shí)別方式,相比于傳統(tǒng)技術(shù)中通過http請(qǐng)求中終端名稱等信息來識(shí)別移動(dòng)終端的技術(shù)方案,能夠降低誤判,提高移動(dòng)終端識(shí)別的準(zhǔn)確率和識(shí)別速度。
【專利附圖】
【附圖說明】
[0034]圖1為一個(gè)實(shí)施例中通過重定向機(jī)制識(shí)別移動(dòng)終端的流程示意圖;
[0035]圖2為一個(gè)實(shí)施例中通過WiFi連接特征識(shí)別移動(dòng)終端的流程示意圖;
[0036]圖3為一個(gè)實(shí)施例中通過UA特征識(shí)別移動(dòng)終端的流程示意圖;
[0037]圖4為一個(gè)實(shí)施例中的移動(dòng)終端識(shí)別裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0039]在本發(fā)明一個(gè)實(shí)施例中,提供了一種移動(dòng)終端識(shí)別方法。該方法可以應(yīng)用于服務(wù)端對(duì)上網(wǎng)的終端進(jìn)行識(shí)別,識(shí)別出其中的移動(dòng)終端。該方法可以包含下列識(shí)別方式的一種或任意多種的組合:
[0040](I)重定向機(jī)制識(shí)別方式。其原理為將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過重定向頁面獲取終端的終端信息,并根據(jù)終端信息判斷終端是否為移動(dòng)終端。
[0041](2) WiFi連接特征識(shí)別方式。移動(dòng)終端在連接WiFi網(wǎng)絡(luò)后,與固定計(jì)算機(jī)終端如PC不同,會(huì)發(fā)出特定的網(wǎng)絡(luò)是否可用的探測(cè)包,利用這一特征,根據(jù)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則判定該終端為移動(dòng)終端。
[0042](3)UA特征識(shí)別方式。移動(dòng)終端中安裝有輕型操作系統(tǒng)(所謂輕型操作系統(tǒng),是指操作系統(tǒng)具有以下特征:擁有一套基本的計(jì)算機(jī)操作系統(tǒng)內(nèi)核,擁有最基本最常用的功能如系統(tǒng)自引導(dǎo)、圖形界面、基本指令集、網(wǎng)絡(luò)連接、外設(shè)控、承載應(yīng)用等。輕型操作系統(tǒng)對(duì)硬件設(shè)備要求不高,僅需要非常小的存儲(chǔ)空間),在移動(dòng)終端向服務(wù)端發(fā)送http請(qǐng)求時(shí),在http請(qǐng)求中UA字段中會(huì)出現(xiàn)移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,因此對(duì)UA (User Agent,http協(xié)議頭部的一部分,由終端自動(dòng)填充,包含終端一些軟硬件信息)字段特征進(jìn)行分析可以識(shí)別出移動(dòng)終端,尤其適用于安裝有android(—種基于Linux的自由及開放源代碼的操作系統(tǒng))操作系統(tǒng)或IOS (蘋果公司開發(fā)的移動(dòng)操作系統(tǒng))操作系統(tǒng)的移動(dòng)終端。故UA特征識(shí)別方式可以概括為:檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則終端為移動(dòng)終端。
[0043](4)應(yīng)用特征識(shí)別方式。根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,從而識(shí)別終端是否為移動(dòng)終端。具體的,為識(shí)別應(yīng)用是否為移動(dòng)終端上安裝的應(yīng)用,可以通過應(yīng)用層將應(yīng)用特征規(guī)則下發(fā)給驅(qū)動(dòng),在數(shù)據(jù)包經(jīng)過時(shí),匹配應(yīng)用特征并在數(shù)據(jù)包的連接跟蹤表記錄識(shí)別結(jié)果。
[0044]參見圖1,為一個(gè)實(shí)施例中,通過重定向機(jī)制識(shí)別移動(dòng)終端的流程示意圖。其流程包括:
[0045]步驟102,過濾終端發(fā)送的http請(qǐng)求。
[0046]服務(wù)端對(duì)各種終端的http請(qǐng)求進(jìn)行過濾。
[0047]步驟104,判斷http請(qǐng)求是否為GET方法的http請(qǐng)求。
[0048]具體的,http請(qǐng)求包括GET方法(Method,瀏覽器等應(yīng)用設(shè)置的數(shù)據(jù)屬性)的http請(qǐng)求、POST方法的http請(qǐng)求等(瀏覽器等以method屬性設(shè)置的方法將表單數(shù)據(jù)提交給服務(wù)器進(jìn)行處理,其中,GET方法的http請(qǐng)求用于終端的客戶端向服務(wù)端請(qǐng)求數(shù)據(jù),而POST方法的http請(qǐng)求用于終端向服務(wù)端發(fā)送數(shù)據(jù))。本實(shí)施例對(duì)GET方法的http請(qǐng)求進(jìn)行后續(xù)步驟的處理,對(duì)其它類型的http請(qǐng)求不做處理,執(zhí)行步驟126。
[0049]步驟106,對(duì)http請(qǐng)求進(jìn)行http頭部特征分析,識(shí)別http請(qǐng)求是否為終端瀏覽器或類瀏覽器應(yīng)用發(fā)出的http GET請(qǐng)求(即GET方法的http請(qǐng)求)。
[0050]具體的,服務(wù)端對(duì)http請(qǐng)求進(jìn)行http頭部特征分析,識(shí)別瀏覽器或類瀏覽器(http請(qǐng)求頭部與瀏覽器類似,能夠解析html語言和執(zhí)行JavaScript代碼)發(fā)出的httpGET請(qǐng)求,并進(jìn)行重定向。其中,在本實(shí)施例中,瀏覽器或類瀏覽器應(yīng)用發(fā)出的http請(qǐng)求,其http頭部特征包括下列a至c: [0051]a.http 請(qǐng)求頭部中 Accept 字段包含 “xhtml+xml ”。
[0052]b.Accept-Language 字段非 “*/*,,。
[0053]c.UA(UserAgent)字段的字符數(shù)超過一閥值。經(jīng)過大量測(cè)試,該閥值可以但不限為 120。
[0054]例如在下段中為一http GET請(qǐng)求的頭部,其UA(User-Agent)字段的字符數(shù)超過閥值,其 Accept 字段包含 “xhtml+xml ” (可以執(zhí)行 xhtml 和 xml 語言),其 Accept-Language字段為“zh-cn” (客戶端語言版本為中文簡(jiǎn)體),因此該http請(qǐng)求為瀏覽器或類瀏覽器應(yīng)用發(fā)出的GET方法的http請(qǐng)求。
[0055]“GET/HTTP/1.1
[0056]Host:news, baidu.com
[0057]User-Agent:Mozilla/5.0(ipad ;CPU 0S5_l_llike Mac OS X)Appleffebkit/534.46 (KHTML, like Gecko) Version/5.1Mobile/9B206Safari/7534.48.3
[0058]Accept:text/html, application/xhtml+xml, application/xml ;q = 0.9, */* ;q=0.8
[0059]Cache-Control: max-age = 0
[0060]Accept-Language:zh-cn
[0061]Accept-Encoding:gzip, deflate
[0062]......”
[0063]步驟108,根據(jù)http請(qǐng)求頭部特征判斷是否進(jìn)行重定向。
[0064]具體的,根據(jù)步驟106中對(duì)http請(qǐng)求進(jìn)行頭部特征分析,如果http請(qǐng)求為瀏覽器或類類瀏覽器發(fā)出的http GET請(qǐng)求,則需要進(jìn)行重定向,對(duì)其返回一指向重定向頁面的鏈接,對(duì)終端的客戶端進(jìn)行重定向(將網(wǎng)絡(luò)請(qǐng)求重新轉(zhuǎn)到其它位置,在本實(shí)施例中,將終端上客戶端發(fā)送的http請(qǐng)求重新定位到重定向頁面)。否則,執(zhí)行步驟126。
[0065]步驟110,判斷是否重定向至重定向頁面。
[0066]若是,執(zhí)行步驟120。若否執(zhí)行步驟112。
[0067]步驟120,重定向頁面通過代碼獲取終端的DOM對(duì)象信息。
[0068]具體的,重定向頁面可以包含預(yù)定的JavaScript代碼,當(dāng)終端上的客戶端重定向到該重定向頁面,執(zhí)行預(yù)定的JavaScript代碼,向服務(wù)端或預(yù)定義的URL (UniformResource Locator,統(tǒng)一資源定位符)發(fā)送終端的DOM對(duì)象信息,其中DOM (Document ObjectModel,文件對(duì)象模型)對(duì)象包括但不限于窗口(window)、屏幕(screen)等。
[0069]步驟122,對(duì)DOM對(duì)象信息進(jìn)行解析,獲取終端信息,并根據(jù)終端信息判斷終端是否為移動(dòng)終端。
[0070]具體的,對(duì)DOM對(duì)象信息進(jìn)行解析,可以獲取終端的終端信息,如操作系統(tǒng)、CPU類型、是否支持Activex控件、終端屏幕分辨率等,并且該終端信息無法通過配置文件進(jìn)行修改,而傳統(tǒng)技術(shù)中終端名稱等信息 可以通過配置文件進(jìn)行修改,由此,重定向機(jī)制識(shí)別方式提高了識(shí)別準(zhǔn)確率,降低了誤判。
[0071]在本實(shí)施例中,為減少終端的計(jì)算負(fù)擔(dān),并且避免終端重復(fù)的進(jìn)行重定向而導(dǎo)致終端不能請(qǐng)求原始頁面,在預(yù)置時(shí)間段內(nèi),對(duì)同一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,具體見圖1中步驟112至步驟118。
[0072]步驟112,獲取終端的IP地址,并計(jì)算該IP地址的hash值。
[0073]具體的,獲取終端的IP地址,并根據(jù)hash (散列算法,一種消息摘要算法)算法將IP地址計(jì)算為一唯一對(duì)應(yīng)的hash值。
[0074]步驟114,通過hash值查找重定向列表中預(yù)置時(shí)間段內(nèi)對(duì)應(yīng)的終端是否已進(jìn)行重定向。
[0075]具體的,重定向列表中記錄了已經(jīng)進(jìn)行重定向的終端的IP地址對(duì)應(yīng)的hash值,根據(jù)hash值進(jìn)行檢索,判斷重定向列表中是否已存在該hash值,若是,則對(duì)應(yīng)的終端已進(jìn)行
重定向。
[0076]步驟116,判斷重定向列表中是否存在該hash值。
[0077]若是,執(zhí)行步驟126,否則執(zhí)行步驟118。
[0078]步驟118,重定向至重定向頁面,更新重定向列表。
[0079]此外,在本實(shí)施例中,重定向頁面中的代碼能夠?qū)崿F(xiàn)刷新機(jī)制,即將終端發(fā)送的http請(qǐng)求重定向到該http請(qǐng)求對(duì)應(yīng)的原始頁面,如圖1中的步驟124,其實(shí)現(xiàn)方法包括window對(duì)象的reload方法(將http請(qǐng)求對(duì)應(yīng)的原始頁面保存在緩存中,在實(shí)現(xiàn)刷新時(shí),從緩存中讀取http請(qǐng)求對(duì)應(yīng)的原始頁面)等等。
[0080]綜上,本實(shí)施例中,將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過重定向頁面獲取終端的終端信息,并根據(jù)終端信息判斷終端是否為移動(dòng)終端,可以概括為:將終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面;重定向頁面通過程序代碼獲取終端的DOM對(duì)象信息;對(duì)DOM對(duì)象信息進(jìn)行解析,獲取終端的終端信息,并根據(jù)終端信息判斷終端是否為移動(dòng)終端。
[0081]參見圖2,為一個(gè)實(shí)施例中,通過WiFi連接特征識(shí)別移動(dòng)終端的流程示意圖。其流程包括:
[0082]步驟202,過濾終端發(fā)送的http請(qǐng)求。
[0083]服務(wù)端對(duì)終端的http請(qǐng)求進(jìn)行過濾,可參考傳統(tǒng)技術(shù)。
[0084]步驟204,判斷http請(qǐng)求是否為GET方法的http請(qǐng)求。
[0085]若是,執(zhí)行步驟206,否則返回。
[0086]步驟206,對(duì)http頭部特征進(jìn)行分析,判斷http請(qǐng)求是否請(qǐng)求預(yù)設(shè)域名。
[0087]具體的,可以從http請(qǐng)求頭部的Host字段判斷終端請(qǐng)求的域名的URL。移動(dòng)終端在連接WiFi網(wǎng)絡(luò)后,會(huì)向特定網(wǎng)絡(luò)發(fā)出探測(cè)包,其中這些特定的網(wǎng)絡(luò)對(duì)應(yīng)的域名包
括:clientsl.google, com、clients2.google, com、clients3.google, com......clients9.google, com、www.airport, us等等。而安裝不同操作系統(tǒng)的移動(dòng)終端會(huì)進(jìn)一步請(qǐng)求不同域名中的不同文件,例如安裝windows操作系統(tǒng)的移動(dòng)終端會(huì)請(qǐng)求ncs1.txt文件,安裝android操作系統(tǒng)的移動(dòng)終端會(huì)請(qǐng)求generate_204,而對(duì)于安裝IOS操作系統(tǒng)的移動(dòng)終端有時(shí)會(huì)指定所要請(qǐng)求的文件,如請(qǐng)求success, html,而有時(shí)不會(huì)指定所請(qǐng)求的文件。例如在下段中為一個(gè)安裝android系統(tǒng)的移動(dòng)終端的http請(qǐng)求部分內(nèi)容:
[0088]“GET/generate_204HTTP/l.1
[0089]User-Agent: Dalvik/1.6.0 (Linux ;U ;Android4.1.2 ;GT_I9300Build/JZ054k)
[0090]Host:clients3.google, com
[0091]Connection:keep-Alive
[0092]Accept-Encoding:gzip
[0093]......”
[0094]其中,在Host字段,http請(qǐng)求所請(qǐng)求的域名為clients3.google, com,并且該httpGET請(qǐng)求所請(qǐng)求的文件為generate_204,由此可以判斷該終端為安裝Android操作系統(tǒng)的移動(dòng)終端。
[0095]參見圖3,為一個(gè)實(shí)施例中,通過UA特征識(shí)別移動(dòng)終端的流程示意圖。其流程包括:
[0096]步驟302,過濾終端發(fā)送的http請(qǐng)求。
[0097]步驟304,對(duì)http請(qǐng)求中UA字段進(jìn)行分析,判斷其中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息。
[0098]具體的,本實(shí)施例對(duì)所有的http請(qǐng)求進(jìn)行分析,包括http GET請(qǐng)求和httpPOST請(qǐng)求。由于UA字段的信息與移動(dòng)終端的操作系統(tǒng)緊密相關(guān),因此可以從終端的http請(qǐng)求中是否有移動(dòng)終端操作系統(tǒng)的關(guān)鍵詞信息來識(shí)別終端是否為移動(dòng)終端。例如可以判斷終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱“Dalvik”和Android操作系統(tǒng)名稱“Android”的組合,如果包含,則該終端為安裝android操作系統(tǒng)的移動(dòng)終端。又例如,可以判斷終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱“CFNetwork”和操作系統(tǒng)原型名稱“Darwin”的組合,如果包含,則該終端為安裝IOS操作系統(tǒng)的移動(dòng)終端。
[0099]在下段中,以一 http POST請(qǐng)求為例,在其UA字段中,包含了 “Dalvik”和“Android”的關(guān)鍵詞信息,則發(fā)送該http請(qǐng)求的終端為移動(dòng)終端。
[0100]“POST/client, action ?[0101]......[0102]Content-Length: 11
[0103]User-Agent: Dalvik/1.6.0 (Linux ;U ;Android4.0.4 ;GT-N8010Build/IMM76D)
[0104]......”
[0105]上述移動(dòng)終端識(shí)別方法,通過多種方式中的一種或多種組合來識(shí)別移動(dòng)終端,包括重定向機(jī)制識(shí)別方式、WiFi連接特征識(shí)別方式、UA特征識(shí)別方式和應(yīng)用特征識(shí)別方式,相比于傳統(tǒng)技術(shù)中通過http請(qǐng)求中終端名稱等信息來識(shí)別移動(dòng)終端的技術(shù)方案,能夠降低誤判,提高移動(dòng)終端識(shí)別的準(zhǔn)確率。
[0106]參見圖4,在一個(gè)實(shí)施例中提供了一種移動(dòng)終端識(shí)別裝置,該移動(dòng)終端識(shí)別裝置可以應(yīng)用于一服務(wù)器,對(duì)發(fā)送http請(qǐng)求的終端進(jìn)行識(shí)別,從而判斷出其中哪些終端為移動(dòng)終端,進(jìn)而能夠?yàn)榉?wù)器進(jìn)行規(guī)范的管理提供依據(jù)。本實(shí)施例所提供的移動(dòng)終端識(shí)別裝置包括重定向機(jī)制識(shí)別模塊402、WiFi連接特征識(shí)別模塊404、UA特征識(shí)別模塊406和應(yīng)用特征識(shí)別模塊408。需要指明的是,在其它的實(shí)施例中,移動(dòng)終端識(shí)別裝置可以僅包括上述模塊的任意一種或者任意多種的組合。
[0107]本實(shí)施例提供的移動(dòng)終端識(shí)別裝置,其工作原理如下:
[0108]重定向機(jī)制識(shí)別模塊402,用于將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過重定向頁面獲取終端的終端信息,并根據(jù)終端信息判斷終端是否為移動(dòng)終端。具體的,本實(shí)施例中,重定向機(jī)制識(shí)別模塊402用于將終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面,通過重定向頁面的程序代碼獲取終端的DOM對(duì)象信息,并對(duì)DOM對(duì)象信息進(jìn)行解析,獲取終端的終端信息,以及根據(jù)終端信息判斷終端是否為移動(dòng)終端。此外,本實(shí)施例中,重定向機(jī)制識(shí)別模塊402在預(yù)置時(shí)間段內(nèi),對(duì)一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,將所述http請(qǐng)求重定向至重定向頁面。在重定向頁面獲取終端的DOM對(duì)象信息后,重定向機(jī)制識(shí)別單元402將終端發(fā)送的http請(qǐng)求重定向到http請(qǐng)求對(duì)應(yīng)的原始頁面。
[0109]WiFi連接特征識(shí)別模塊404,用于檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端。
[0110]UA特征識(shí)別模塊406,用于檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則終端為移動(dòng)終端。例如判斷終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱“Dalvik”和“Android”的組合,若是,則終端為安裝有Android操作系統(tǒng)的移動(dòng)終端;又例如判斷終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱“CFNetwork”和操作系統(tǒng)原型名稱“Darwin”的組合,若是,則終端為安裝有IOS操作系統(tǒng)的移動(dòng)終端。
[0111]應(yīng)用特征識(shí)別模塊408,用于根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則終端為移動(dòng)終端。
[0112]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種移動(dòng)終端識(shí)別方法,其特征在于,所述方法包括下列步驟中的任意一種或任意多種的組合: 將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端; 檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端; 檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則所述終端為移動(dòng)終端; 根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則所述終端為移動(dòng)終端。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端的步驟,包括: 將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面; 所述重定向頁面通過程序代碼獲取所述終端的DOM對(duì)象信息; 對(duì)所述DOM對(duì)象信息進(jìn)行解析,獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面,包括: 在預(yù)置時(shí)間段內(nèi),對(duì)一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,將所述http請(qǐng)求重定向至重定向頁面。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,在所述重定向頁面通過程序代碼獲取所述終端的DOM對(duì)象信息之后,所述重定向頁面將所述終端發(fā)送的http請(qǐng)求重定向到所述http請(qǐng)求對(duì)應(yīng)的頁面。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求的步驟,包括: 對(duì)所述終端發(fā)送的GET方法的http請(qǐng)求進(jìn)行http頭部特征分析,判斷所述http請(qǐng)求是否請(qǐng)求預(yù)設(shè)的域名或預(yù)設(shè)的文件。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,包括是否滿足下列的一種: 所述終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱和Android操作系統(tǒng)名稱的組合,若是,則所述終端為安裝有Android操作系統(tǒng)的移動(dòng)終端; 所述終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱和操作系統(tǒng)原型名稱的組合,若是,則所述終端為安裝有IOS操作系統(tǒng)的移動(dòng)終端。
7.一種移動(dòng)終端識(shí)別裝置,其特征在于,所述裝置包括下列單元的任意一種或任意多種的組合: 重定向機(jī)制識(shí)別模塊,用于將終端發(fā)送的http請(qǐng)求重定向至預(yù)設(shè)的重定向頁面,通過所述重定向頁面獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端; WiFi連接特征識(shí)別模塊,用于檢測(cè)終端在連接到WiFi網(wǎng)絡(luò)后,是否向預(yù)設(shè)域名發(fā)送http請(qǐng)求,若是,則所述終端為移動(dòng)終端; UA特征識(shí)別模塊,用于檢測(cè)終端發(fā)送的http請(qǐng)求中的UA字段中是否包含移動(dòng)終端操作系統(tǒng)對(duì)應(yīng)的關(guān)鍵詞信息,若是,則所述終端為移動(dòng)終端; 應(yīng)用特征識(shí)別模塊,用于根據(jù)終端上發(fā)送的應(yīng)用數(shù)據(jù)來識(shí)別應(yīng)用是否為移動(dòng)終端上的應(yīng)用,若是,則所述終端為移動(dòng)終端。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述重定向機(jī)制識(shí)別模塊,用于將所述終端瀏覽器或類瀏覽器應(yīng)用發(fā)送的GET方法的http請(qǐng)求重定向至重定向頁面;以及用于通過程序代碼獲取所述終端的DOM對(duì)象信息;以及用于對(duì)所述DOM對(duì)象信息進(jìn)行解析,獲取所述終端的終端信息,并根據(jù)所述終端信息判斷所述終端是否為移動(dòng)終端。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述重定向機(jī)制識(shí)別模塊在預(yù)置時(shí)間段內(nèi),對(duì)一網(wǎng)絡(luò)地址對(duì)應(yīng)的終端的http請(qǐng)求只進(jìn)行一次重定向,將所述http請(qǐng)求重定向至重定向頁面。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述重定向機(jī)制識(shí)別模塊,還用于將所述終端發(fā)送的http請(qǐng)求重定向到所述http請(qǐng)求對(duì)應(yīng)的頁面。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述WiFi連接特征識(shí)別模塊,用于對(duì)所述終端發(fā)送的GET方法 的http請(qǐng)求進(jìn)行http頭部特征分析,判斷所述http請(qǐng)求是否請(qǐng)求預(yù)設(shè)的域名或預(yù)設(shè)的文件。
12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述UA特征識(shí)別模塊,用于判斷所述終端發(fā)送的http請(qǐng)求中UA字段是否包含Android操作系統(tǒng)中虛擬機(jī)名稱和Android操作系統(tǒng)名稱的組合,若是,則所述終端為安裝有Android操作系統(tǒng)的移動(dòng)終端;以及用于判斷所述終端發(fā)送的http請(qǐng)求中UA字段是否包含IOS操作系統(tǒng)的網(wǎng)絡(luò)編程接口層名稱和操作系統(tǒng)原型名稱的組合,若是,則所述終端為安裝有IOS操作系統(tǒng)的移動(dòng)終端。
【文檔編號(hào)】G06F17/30GK104023046SQ201410193829
【公開日】2014年9月3日 申請(qǐng)日期:2014年5月8日 優(yōu)先權(quán)日:2014年5月8日
【發(fā)明者】嚴(yán)德志 申請(qǐng)人:深圳市深信服電子科技有限公司