User-Agent 解析与识别工具
一站式 User-Agent 字符串解析工具,覆盖 RFC 9110 定义的 UA 头字段。 解析器实时识别浏览器名称与版本、操作系统、设备类型(桌面/手机/平板)、 渲染引擎(Blink/WebKit/Gecko)与爬虫机器人(Googlebot/Bingbot/cURL 等); 速查表内置 60+ 浏览器、主流操作系统、4 大渲染引擎与常见爬虫的中文参考; 示例库提供桌面/移动/应用内 WebView/爬虫 4 大类真实 UA 样本,点击「载入」 一键填入解析器。适用于调试移动端适配、识别爬虫访问、统计分析访问来源、设计自适应布局、 排查浏览器兼容性等场景,所有解析在浏览器本地完成。
输入 User-Agent
实时解析,无需点击按钮。可从「示例库」标签页载入真实 UA。
解析结果
等待输入 User-Agent 字符串…
支持浏览器、移动设备、应用内 WebView、爬虫等全场景识别
常见问题
User-Agent 是什么?为什么浏览器要发送这个字符串?
User-Agent(简称 UA)是 HTTP 请求头中的一个字段,格式
User-Agent: <产品> / <版本> (<系统信息>) <扩展信息>,
由浏览器在每次 HTTP 请求中自动携带,向服务器标识自己。
UA 字符串的设计初衷是让服务器根据客户端能力返回合适内容(如移动端返回精简版页面、
老浏览器返回降级资源)。但由于历史原因,UA 字符串长期被滥用于浏览器嗅探
(Browser Sniffing):一些网站仅根据 UA 中是否含 "Chrome" 判断能力,导致新浏览器伪装成 Chrome 才能正常访问。
典型 UA 结构(以 Chrome 120 为例):
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36。
其中 Mozilla/5.0 是历史兼容标记,Windows NT 10.0 是操作系统,
AppleWebKit/537.36 是渲染引擎版本,Chrome/120.0.0.0 是真实浏览器与版本,
Safari/537.36 是历史兼容标记(Chrome 为了被识别为 Safari 才能访问某些站点)。
UA-CH(User-Agent Client Hints)是什么?为什么要替代传统 UA?
UA-CH(User-Agent Client Hints)是 Chrome 团队提出的 UA 替代方案,
通过结构化的 Sec-CH-UA 系列响应头/请求头传递客户端信息,避免传统 UA 字符串的
三个核心问题:
1. 隐私泄露:传统 UA 字符串含精细版本号、CPU 架构、设备型号,组合后可作为
指纹追踪用户。UA-CH 默认只发品牌列表与主版本号,精细字段需服务器主动请求(
Accept-CH: Sec-CH-UA-Platform, Sec-CH-UA-Mobile)。
2. 兼容性陷阱:传统 UA 字符串被大量网站用于嗅探,浏览器一旦改 UA 就会破坏
现有网站。Chrome 自 92 起采用 UA 冻结(UA Freezing):逐步把精细信息替换为固定值,
仅保留主版本号,迫使用户改用 UA-CH。
3. 字符串解析脆弱:UA 字符串无固定结构,正则解析易出错。UA-CH 用结构化键值对
(Sec-CH-UA: "Chromium";v="120", "Not(A:Brand";v="24", "Google Chrome";v="120")
避免解析歧义。
浏览器支持:Chrome 89+ / Edge 89+ 已支持,Firefox 与 Safari 暂未实现(截至 2024)。
生产环境推荐优先使用 UA-CH,降级使用传统 UA,避免依赖精细版本号。
为什么 Edge、Opera、Chrome 的 UA 都包含 "Chrome"?怎么区分?
这是浏览器历史兼容的产物:基于 Chromium 内核的浏览器(Edge、Opera、Brave、Vivaldi、360、QQ、UC 等)
为了访问仅识别 Chrome 的网站,在 UA 中保留 Chrome/x.x.x.x 标记,
同时再附加自己的品牌标记。所以解析时必须按特异性顺序匹配,先匹配更具体的品牌,
再回退到 Chrome:
- Edge:UA 含 Edg/x.x.x.x(注意是 Edg 不是 Edge,避免与 IE 区分),必须在 Chrome 之前匹配。
- Opera:UA 含 OPR/x.x.x.x 或老版本 Opera/x.x.x.x。
- Brave:UA 与 Chrome 完全相同,无法通过 UA 区分,需检测
navigator.brave API。
- 360 浏览器:UA 含 QIHU 360SE 或 360SE。
- QQ 浏览器:UA 含 QQBrowser 或 QQ/。
- UC 浏览器:UA 含 UCBrowser 或 UCWEB。
- 微信 WebView:UA 含 MicroMessenger/x.x.x.x,在 Chrome 之前匹配。
- QQ 内置浏览器:UA 含 QQ/(注意与 QQ 浏览器不同)。
本工具的解析顺序:国产/应用内 WebView 浏览器优先 → Chromium 衍生浏览器(Edge/Opera)
→ 主流国际浏览器(Chrome/Safari/Firefox)→ 其他。这是识别准确率的关键。
如何识别爬虫/机器人?怎么区分正常用户和 Googlebot?
爬虫识别主要靠UA 字符串中的特定标识,主流搜索引擎爬虫都会在 UA 中明确标识自己:
- Googlebot:Googlebot/2.1 (+http://www.google.com/bot.html)
- Bingbot:Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
- 百度爬虫:Baiduspider+(+http://www.baidu.com/search/spider.htm),
另有 Baiduspider-render(渲染爬虫)、Baiduspider-image(图片爬虫)等子类
- 搜狗爬虫:Sogou web spider/4.0
- 360 搜索爬虫:360Spider
- 神马爬虫:YisouSpider
- HTTP 库:cURL (curl/x.x.x)、Python Requests (python-requests/x.x.x)、
axios (axios/x.x.x)、Go http (Go-http-client/x.x)、Java (Java/x.x.x)
- 社交媒体爬虫:Twitterbot、Facebook External Hit、LinkedInBot、TelegramBot
识别要点:含 bot、spider、crawler、
slurp、archive 等关键字的通常为爬虫。但UA 可被伪造——
恶意爬虫可伪装成正常浏览器 UA,仅靠 UA 识别有局限。生产环境识别恶意爬虫需结合 IP 信誉库、
访问频率、行为特征等综合判断。Googlebot 真实性可通过反向 DNS 查询(*.googlebot.com)+ 正向 DNS 验证。
怎么从 UA 区分手机、平板、桌面?iPad 为什么有时被识别为桌面?
设备类型识别主要靠 UA 中的关键字:
- 手机:含 Mobile 或 iPhone 或 Android(含 Mobile)。
典型:Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) ... Mobile/15E148 Safari/604.1。
- 平板:含 iPad 或 Android(不含 Mobile)或 Tablet。
典型:Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) ... Mobile/15E148 Safari/604.1。
- 桌面:含 Windows NT、Macintosh、X11、Linux(无 Mobile)。
iPad 桌面陷阱:自 iPadOS 13 起,Apple 默认把 iPad 的 UA 设为桌面 Safari
(请求桌面版网站),UA 中不再含 iPad,而是 Macintosh + Mac OS X。
这导致纯 UA 解析会误判 iPad 为 Mac。区分方法:
1. 检测触屏:navigator.maxTouchPoints > 1 + UA 含 Macintosh,
极可能是 iPad。
2. UA-CH:Sec-CH-UA-Platform 会返回 "iPadOS"。
3. 用户手动切换:iPadOS 13+ 设置中可切换"请求移动网站",UA 会变回含 iPad。
本工具的示例库含 iPad 桌面版与移动版两组 UA,方便对比测试。
应用内 WebView(微信/QQ/微博)的 UA 长什么样?怎么识别?
WebView 是 App 内嵌的浏览器组件(基于系统内核或自带内核),UA 通常在系统浏览器 UA
基础上追加 App 标识。常见模式:
- 微信:UA 含 MicroMessenger/x.x.x.x,例:
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) ... Mobile/15E148 Safari/604.1 MicroMessenger/8.0.40。
版本号 < 6.0.2 无法调用微信 JSSDK,>= 7.0.0 才支持小程序 webview。
- QQ(手机 QQ):UA 含 QQ/x.x.x.x,注意与 QQ 浏览器(QQBrowser)不同。
- QQ 浏览器:UA 含 QQBrowser 或老版本 QQBrowserLite。
- 微博:UA 含 Weibo 或 __weibo。
- 支付宝:UA 含 AlipayClient。
- 钉钉:UA 含 DingTalk。
- 飞书:UA 含 Lark 或 Feishu。
- 抖音/今日头条:UA 含 aweme、ByteLocale、newsarticle 等。
识别要点:WebView UA 通常以系统浏览器 UA 为前缀 + 追加 App 标识,
所以解析时必须先匹配 App 标识(更特异),再回退到系统浏览器。本工具的解析顺序已对 WebView 做特异优先处理。
UA 会被伪造吗?为什么不能完全信任 UA?
UA 字符串完全可以被任意伪造,因为它只是 HTTP 请求头的一个字段,浏览器扩展、命令行工具、
任何 HTTP 客户端都可以设置任意 UA。常见场景:
1. 开发调试:浏览器开发者工具可切换设备模拟(修改 UA 测试移动端)。
cURL 通过 -A 参数指定 UA:curl -A "Mozilla/5.0 ..." https://example.com。
2. 爬虫伪装:恶意爬虫伪造 Chrome UA 绕过反爬。Python Requests 默认 UA 是
python-requests/x.x.x,最简单的反爬直接 ban 这个 UA,所以爬虫会改成 Chrome UA。
3. 用户主动修改:某些扩展(如 User-Agent Switcher)允许用户切换 UA,访问仅限移动端的页面。
4. 浏览器内核切换:国产浏览器(如 360、搜狗)有"兼容模式/极速模式",切换内核时 UA 会变。
所以 UA 不能作为信任依据:
- 安全场景:识别用户身份必须用 Cookie/Token/JWT,绝不能依赖 UA。
- 反爬场景:仅靠 UA 识别爬虫易被绕过,需配合 IP 频率、行为特征、验证码等多层防护。
- 统计场景:UA 统计结果仅供参考,可能存在伪造偏差。
- 能力检测场景:判断浏览器是否支持某特性应使用特性检测
(if ('serviceWorker' in navigator) { ... }),而非 UA 嗅探。
这个工具会上传我的 UA 字符串吗?数据安全吗?
完全本地处理,零上传:
- 解析器:你粘贴或输入的 UA 字符串仅在浏览器内存中处理,不发送到任何服务器。
所有解析逻辑(60+ 浏览器模式、操作系统识别、设备类型判断、爬虫检测)都在浏览器本地执行。
- 速查表与示例库:数据内置在页面 JS 包中,不发起任何网络请求。
示例库中的真实 UA 均为公开数据,不含任何用户隐私信息。
- 复制功能:点击「复制」按钮把解析结果或示例 UA 写入剪贴板,全程本地操作。
- 无 Cookie 追踪、无第三方统计、无广告,适合处理含敏感信息的 UA 字符串(虽然 UA 本身不含个人身份信息,
但部分用户可能不想暴露自己的 UA)。
关于"获取我的 UA"功能:本工具不主动读取 navigator.userAgent,避免在不知情下泄露用户 UA。用户需手动复制粘贴或从示例库选择,
保持透明可控。