網站設備檢測
回答
檢測設備或Web瀏覽器的唯一方法就是用戶代理字符串,每個Web瀏覽器必須按照HTTP 1.1協議提供用戶代理。用戶代理字符串可以包含多個產品令牌。按照慣例,產品標記按其對識別應用程序的意義順序列出。
對於基於Mozilla的瀏覽器,用戶代理字符串應遵循以下格式:
MozillaProductToken (MozillaComment) GeckoProductToken *
(VendorProductToken|VendorComment)
應用的,嵌入的Gecko排版引擎應具有下面的格式的用戶代理字符串:
ApplicationProductToken (ApplicationComment) GeckoProductToken *
(VendorProductToken|VendorComment)
其中:
ProductToken : Mozilla/ MozillaVersion
Version : Major . Minor
Comment : (Platform; Security; OS-or-CPU;
Localization information;
GeckoVersion)*[; Optional Other Comments])
Platform : Windows, Linux, Mac etc.
Security : N for no security;
U for strong security;
I for weak security
OS-or-CPU : Windows Version/MacOS
GeckoVersion : String starting with "rv:" followed
by the Gecko version
GeckoProductToken: Gecko/GeckoDate
GeckoDate : Date in the format YYYYMMDD
例子
Mozilla的推出
Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101
基於相同的基本代碼的瀏覽器上面
Mozilla/5.001 (Macintosh; N; PPC; ja; rv:1.0) Gecko/25250101
MegaCorpBrowser/1.0 (MegaCorp, Inc.)
甲重新命名釋放
Mozilla/9.876 (X11; U; Linux 2.2.12-20 i686, en; rv:2.0) Gecko/
25250101 Netscape/5.432b1 (C-MindSpring)
甲基於Gecko的瀏覽器有品牌的釋放
TinyBrowser/2.0 (TinyBrowser Comment; rv:1.9.1a2pre) Gecko/202
種
OPERA
用戶字符串規格:
Opera/Version (OS-or-CPU; Encryption; Language)
鉻
他們使用的WebKit作爲其渲染引擎,但使用不同的JavaScript引擎。對於Chrome的最初測試版本,0.2版本,用戶代理字符串以及所有從WebKit的信息以及對於Chrome版本的額外部分進行。格式如下:
Mozilla/5.0 (Platform; Encryption; OS-or-CPU; Language)
AppleWebKit/AppleWebKitVersion (KHTML, like Gecko) Chrome/
ChromeVersion Safari/SafariVersion
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML,
like Gecko) Chrome/0.2.149.29 Safari/525.13
Konqueror的
的Konqueror,在KDE Linux桌面環境捆綁瀏覽器,是基於KHTML開源渲染引擎。雖然僅在Linux上可用,但Konqueror擁有活躍的用戶羣。爲了獲得最佳的兼容性,Konqueror中選擇IE後,設置其用戶代理字符串如下:
Mozilla/5.0 (compatible; Konqueror/3.5; SunOS) KHTML/3.5.0 (like Gecko)
的WebKit
在2003年,蘋果宣佈將推出自己的網絡瀏覽器,Safari瀏覽器叫。被稱爲WebKit的Safari渲染引擎最初是基於Linux的Konqueror Web瀏覽器中使用的KHTML渲染引擎的一個分支。但是,您如何確保瀏覽器未被鎖定在熱門網站之外?答案是,將足夠的信息放入用戶代理字符串中以說服網站瀏覽器與其他流行的瀏覽器兼容。這導致了用戶代理字符串格式如下:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/
124 (KHTML, like Gecko) Safari/125.1
手機和平板指標
的UA字符串的平臺部分表示,如果Firefox是一個手機大小的設備或平板電腦上運行。當Firefox在具有手機外形的設備上運行時,會出現Mobile;令牌在UA字符串的平臺部分。例如:
Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
但是,如果你使用UA嗅探到目標內容到設備的外形尺寸,請認準摩比(包括Opera移動,它採用「牧高笛」)手機的外形和不假設「Android」和設備形狀因子之間有任何關聯。
的Android
Phone : Mozilla/5.0 (Android; Mobile; rv:13.0) Gecko/13.0 Firefox/13.0
Tablet : Mozilla/5.0 (Android; Tablet; rv:13.0) Gecko/13.0 Firefox/13.0
火狐OS
Phone : Mozilla/5.0 (Mobile; rv:15.0) Gecko/15.0 Firefox/15.0
您可以有哪些設備訪問者使用同時使用服務器端和客戶端技術做一個聰明的猜測:
- PHP可以解析用戶代理或在已知設備的數據庫上查找它
- Javascript可以檢測瀏覽器的多個API和功能,爲您提供關於設備功能的非常好的照片。
雖然沒有真正的保證(你基本上相信無論瀏覽器是選擇向大家介紹自己)這裏有一個你可以告訴用戶設備什麼的兩個樣本:
- 1. 網站檢測設備
- 2. 檢測設備類型以加速網站
- 3. 檢測越獄設備與網頁
- 4. JmDNS檢測Android中的網絡設備
- 5. 移動設備檢測 - 網絡開發
- 6. 檢測設備訪問網頁,ASP.net
- 7. 檢測Android設備
- 8. Silverlight檢測設備
- 9. 網站上的USB設備
- 10. 手機網站檢測
- 11. 如何檢測Joomla網站?
- 12. python網站語言檢測
- 13. 移動網站檢測
- 14. 網站傳入http檢測
- 15. 檢測移動設備
- 16. Android - 設備未檢測到
- 17. 檢測藍牙設備「ID」
- 18. iPhone檢測藍牙設備
- 19. 使用modernizr檢測設備
- 20. 設備瀏覽器檢測
- 21. 設備檢測條件CSS
- 22. JmDNS設備刪除檢測
- 23. 顛倒檢測設備
- 24. 檢測USB設備事件
- 25. 檢測USB設備android
- 26. PyUsb:檢測設備移除
- 27. 檢測設備移動
- 28. API來檢測USB設備
- 29. navigator.userAgent檢測移動設備?
- 30. 檢測混合設備
嚴格技術上說:沒有。但實際建議您應該使用搜索;)(我試試,太) – hakre 2013-03-08 16:48:55
在github上看了一下,發現了這個項目:https://github.com/serbanghita/Mobile-Detect。也許你可以使用它。 – Tjoene 2013-03-08 17:03:01
@Tjoene看起來確實很聰明。我不知道它有多準確,但看起來很有希望。謝謝! – 2013-03-08 17:04:37