UA 解析器
線上解析 User-Agent 字串,識別瀏覽器、作業系統和裝置資訊
解析結果
什麼是 User-Agent?
UA 解析工具會把 User-Agent 字串拆解成瀏覽器、作業系統、裝置類型、渲染引擎,以及有時包含的爬蟲或客戶端線索。User-Agent 常出現在日誌、資料分析、客服工單、相容性測試和安全排查中,可以協助判斷某次請求來自什麼類型的客戶端。但它不是可靠身分標識:UA 可以被偽造、縮短、因隱私策略被修改,也可能被現代 Client Hints 補充或取代。這個工具適合快速閱讀和對比 UA,但不應單獨用於權限、反詐欺、個人化或關鍵裝置判斷。需要準確性時,應結合伺服器日誌、特性檢測和客戶端檢查。
使用方式
使用方式
- 將要解析的 User-Agent 字串貼到輸入框中
- 或點選「解析我的 UA」自動偵測目前瀏覽器的 UA
- 解析結果會顯示在下方,包含瀏覽器、系統與裝置詳細資訊
- 點選「複製 UA」可複製原始 UA 字串
解析限制
- User-Agent 字串可能會被現代瀏覽器偽造、凍結或簡化,因此請將解析結果視為參考。
- 進行功能判斷時,建議優先採用能力偵測,而非依瀏覽器名稱判斷。
使用場景
技術原理
User-Agent 標頭由 RFC 7231 §5.5.3 定義,是一系列產品標記(product/version)和括號註解的序列,但實際上每個現代瀏覽器傳送的字串都以字面量 Mozilla/5.0 開頭。這個前綴可追溯到 1993 年,當時網站透過檢查 Mozilla 來偵測 NCSA Mosaic;Netscape 採用了 Mozilla,Internet Explorer 3 為了相容性也加入了它,之後的每個分支(Safari、Chrome、Edge、Opera)都保留了這個標記。沒有正式的文法定義 OS 位於何處、引擎版本放在哪裡,或當多個瀏覽器為了相容性互相列出時哪個標記優先,因此解析是透過一組優先排序的正規表達式對四個經典維度進行:瀏覽器、引擎、作業系統、裝置。開源函式庫如 ua-parser-js、bowser 以及 UAParser 的 Lua/Python 移植版都維護相同的模式檔案。自 2022 年起,Chrome 推行 UA 縮減(UA Reduction):瀏覽器版本凍結為 MAJOR.0.0.0,平台特定的次要標記被移除,因此解析出的 Chrome 120.0.0.0 在 Windows 上實際代表 Chrome 120.x 在 Windows 10 或 11 上執行,精確的組建號隱藏在 Client Hints 背後。現代替代方案是 User-Agent Client Hints(draft-ietf-httpbis-client-hints),它在每個請求中暴露 Sec-CH-UA、Sec-CH-UA-Mobile 和 Sec-CH-UA-Platform,並透過 navigator.userAgentData.getHighEntropyValues() 提供高熵值(型號、完整版本、架構)。UA 解析器在日誌審查和爬蟲分類中仍然有用,但功能偵測和 Client Hints 應該驅動任何執行時的分支判斷。
- RFC 7231 §5.5.3 將 User-Agent 定義為產品標記加註解,沒有 OS 或裝置的文法——每個解析器都自行維護正規表達式列表
- Mozilla/5.0 前綴是 1993 年 Mosaic 時代的相容性駭客手法;Safari、Chrome 和 Edge 都保留它以避免破壞瀏覽器偵測網站
- Chrome UA 縮減(2022–2023 年推出)將次要版本凍結為 0.0.0 並固定平台字串——真實組建號存放在 Sec-CH-UA-Full-Version-List 中
- User-Agent Client Hints 在每個請求中暴露 Sec-CH-UA、Sec-CH-UA-Mobile、Sec-CH-UA-Platform;高熵欄位需要 navigator.userAgentData.getHighEntropyValues(['model','platformVersion','architecture'])
- 透過關鍵字(bot、crawler、spider、Googlebot、Bingbot、Baiduspider、YandexBot)偵測機器人可以抓到守規矩的爬蟲,但無法抓到模仿真實 Chrome UA 的對抗性爬蟲——需搭配速率限制和行為信號
- 手機與平板的判斷依據是標記(Mobile、Tablet、iPhone、iPad)而非螢幕尺寸;沒有 Mobile 標記的 Android UA 會被大多數解析器視為平板
- 以 Vary: User-Agent 為快取鍵的快取和 CDN 會將單一資源分裂成數千個快取項目——建議改用 Vary: Sec-CH-UA-Mobile 或接受較低的命中率
範例
Chrome 瀏覽器
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36iPhone Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 Version/17.0 Mobile/15E148 Safari/604.1Google 爬蟲
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)常見問題
User-Agent 解析會抓出什麼資訊?
瀏覽器名稱與版本(例如「Chrome 124」)、作業系統與版本、裝置類型(桌機/手機/平板)、CPU 架構、渲染引擎(Blink/Gecko/WebKit),以及當 UA 符合已知爬蟲樣式時的機器人/爬蟲分類。
UA 解析有多準確?
對主流、知名的瀏覽器表現良好。但在以下情況會卡關:解析庫尚未更新的全新版本;為了規避偵測而模仿 Chrome/Safari 的瀏覽器;偽裝成真實 UA 的機器人;UA 顯示宿主 App 而非引擎名稱的內嵌 WebView。
為什麼 User-Agent 字串越來越沒參考價值?
瀏覽器廠商(以 Chrome 為首)為了限制指紋追蹤正在「凍結」UA 字串,改推 UA Client Hints(Sec-CH-UA-* 標頭)。再過幾年,UA 字串只會回報穩定且資訊量低的固定值,真正的裝置資料則會放在 Client Hints 中,程式碼也應隨之遷移。
可以用 UA 偵測來開關功能嗎?
幾乎不該這麼做。UA 會說謊,且即使是同一款瀏覽器,不同版本對功能的支援也不同。請改用 `if ('serviceWorker' in navigator)` 這類功能偵測。UA 偵測適合用在分析、客服工單、Bug 報告分類,不適合用來決定要呼叫哪個 API。
可以解析我自己的 UA 嗎?
可以。頁面頂端會顯示你目前瀏覽器的 UA 並拆解成各個欄位,方便你確認瀏覽器到底向伺服器回報了哪一個版本。
可以用來偵測機器人嗎?
解析器能辨識會自我表明身分的良性機器人(Googlebot、Bingbot、Slackbot)。惡意機器人通常會偽裝成真實瀏覽器,因此單靠 UA 偵測效果有限。實際防護應結合速率限制、CAPTCHA 與行為訊號。
UA 會被上傳嗎?
不會。解析在你的瀏覽器中以 JS 函式庫(通常是 ua-parser-js)執行,貼上的 UA 字串不會傳到伺服器。