1. 程式人生 > >關於user-agent(UA)

關於user-agent(UA)

1. 什麼是user-agent?

    User Agent中文名為使用者代理,簡稱 UA,它是一個特殊字串頭,使得伺服器能夠識別客戶使用的作業系統及版本、CPU 型別、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器外掛等。

     瀏覽器的UA欄位標準格式:瀏覽器標識 (作業系統標識; 加密等級標識; 瀏覽器語言) 渲染引擎標識 版本資訊 。

2. 如何檢視user-agent?

   方法一:使用抓包工具(比如Wireshark和sniffer)

   方法二:推薦3個檢測瀏覽器User-Agent資訊的網站

3. 瀏覽器user-agent

IE
  而IE各個版本典型的userAgent如下: 


  Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) 
  Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) 
  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) 
  Mozilla/4.0 (compatible; MSIE 5.0; Windows NT) 
  其中,版本號是MSIE之後的數字。

Firefox 
  Firefox幾個版本的userAgent大致如下: 
  Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1 


  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3 
  Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12  其中,版本號是Firefox之後的數字。

Opera 
  Opera典型的userAgent如下: 
  Opera/9.27 (Windows NT 5.2; U; zh-cn) 
  Opera/8.0 (Macintosh; PPC Mac OS X; U; en) 
  Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0  


  其中,版本號是靠近Opera的數字。

Safari 
  Safari典型的userAgent如下: 
  Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13 
  Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3 
  其版本號是Version之後的數字。

Chrome 
  目前,Chrome的userAgent是: 
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13  
  其中,版本號在Chrome之後的數字。

Navigator 
目前,Navigator的userAgent是: 
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6 
其中,版本號在Navigator之後的數字。

以下是常見瀏覽器的自定義Agent

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0) 
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727) 
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; 360se) 
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; TencentTraveler 4.0; .NET CLR 2.0.50727)

其中,360瀏覽器是“360se”,騰訊TT瀏覽器是“TencentTraveler 4.0”,Sogou瀏覽器是“SE 2.X MetaSr 1.0”,NET框架版本是“.NET CLR 2.0.50727”。

(2)幾個移動平臺的user-agent

Android N1

Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Android QQ瀏覽器 For android

MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Android UC For android

JUC (Linux; U; 2.3.7; zh-cn; MB200; 320*480) UCWEB7.9.3.103/139/999

備註: 320*480 是裝置的解析度,可以修改.

Android Firefox手機版Fennec

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0a1) Gecko/20110623 Firefox/7.0a1 Fennec/7.0a1

Android Opera Mobile

Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10

Android Pad Moto Xoom

Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13

iPhone3

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/1A542a Safari/419.3

iPhone4

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7

iPad

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

BlackBerry

Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+

WebOS HP Touchpad

Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0

Nokia N97

Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124

Windows Phone Mango

Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)

          Windows Phone Mango的User Agent格式為:Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0;廠商;型號[;運營商])

4. user-agent並非瀏覽器所特有的,Spider,Robots,Crawler,掃描器等都有user-agent,具體可以在http://www.user-agents.org/檢視詳情。

5. 從以上user-agent可以很明顯的看出,user-agent洩露了我們的一些資訊,還有一些網站常常通過判斷 UA 來給不同的作業系統、不同的瀏覽器傳送不同的頁面,因此可能造成某些頁面無法在某個瀏覽器中正常顯示,但通過偽裝 UA 可以繞過檢測,這時候就需要修改user-agent來達到我們的目的。

方法一:使用Firefox  擴充套件User Agent Switcher 修改user-agent,可以直接編輯新增刪除;

image

方法二:chrome也有User Agent Switcher 擴充套件,和Firfox大同小異,也可以使用chrome自帶的開發者工具;

(1)開啟Chrome瀏覽器,用組合鍵 Ctrl+Shift+I 開啟開發者工具(或者點選右面扳手圖示,選擇工具,再選擇開發人員工具);

(2)單擊視窗底部的“Settings”圖示;

(3)點選Override User Agent 選項,在IE、火狐、iPhone、iPad和Android 2.3的Nexus S中選擇其中一個選項,你也可以選擇“其他”選項,並輸入一個自定義的使用者代理。

image

ps:今天在伺服器的Web訪問日誌中發現了libwww-perl/5.808和ZmEu這兩種不熟悉的瀏覽器agent,然後開始了對user-agent的仔細查閱。

使用下面的指令碼可以返回當前瀏覽器的UA資訊

javascript:var%20x=navigator.userAgent;%20var%20y='%';%20for%20(var%20i=0;i<x.length;i++)%7B%20y+=x.charCodeAt(i).toString(16)+'%';%20%7D%20y=unescape(decodeURI(y.replace(/\%$/,'')));%20alert(x+'\n'+y);%20void(0);