⭐ 觉得好用?收藏备用,下次直接打开
User-Agent 字符串

User-Agent (UA) 是浏览器在每次 HTTP 请求中通过 User-Agent 头自报身份的字符串,里面塞着浏览器、内核、操作系统、设备型号等信息。本工具用 ua-parser-js 在浏览器本地解析,把一长串混杂的 UA 拆成 浏览器 / 操作系统 / 设备 / 引擎 / CPU 五个结构化字段。

历史包袱:互相伪装

UA 自 1990 年代以来形成了「为兼容性互相伪装」的奇特生态——Chrome 的 UA 里同时含 Mozilla/5.0AppleWebKitKHTML, like GeckoChromeSafari。这是历史包袱:早期网站对浏览器做硬编码特性检测,新浏览器不得不”假装”成老浏览器才能通过判定。从 UA 反推真实浏览器需要按优先级匹配,标准库已经处理好这层逻辑,自己用正则匹配很容易踩坑。

典型使用场景

  • 兼容性排查 — 用户贴 UA 给客服,秒级定位浏览器型号 + 版本
  • 服务端日志拆字段 — 把一列字符串拆成 browser / os / device 做统计
  • 内置 WebView 识别 — 微信 / 支付宝 / 钉钉关键字检测
  • 爬虫识别 — Googlebot / Bingbot / Baiduspider 区分真人

安全提醒

UA 完全可由客户端控制,DevTools、curl -A、爬虫脚本都能任意伪造,不要把 UA 作为安全校验依据。Chrome / Edge 也在用 Client Hints(Sec-CH-UA-* 头)逐步替代 UA,UA 字符串本身正在 freeze 化。本工具支持 10+ 常见 UA 示例一键填充,所有解析在浏览器本地完成,UA 不会上传。

📍使用场景

  • 兼容性问题排查用户反馈某页面打不开,让对方贴 UA,秒级定位到浏览器型号+版本+设备类型。
  • 服务端日志拆字段把 access log 里一长串 UA 字段拆成 browser / os / device 结构化字段,统计访客分布。
  • 内置浏览器识别判断当前请求来自微信、支付宝、钉钉等超级 App 的 WebView,规避外链跳转和支付限制。
  • 爬虫识别 / SEO 审计区分 Googlebot / Bingbot / 国产爬虫和真人访客,针对性返回内容或做反爬策略。

常见问题

iPad 为什么解析后显示成 macOS?

iPadOS 13 起,iPad 的 Safari 默认开启「桌面版网站」模式,UA 里主动伪装成 Mac——只剩 Macintosh; Intel Mac OS X 字样,再无 iPad 关键字。这是苹果有意为之,目的是让 iPad 拿到桌面体验。如果业务必须区分 iPad,建议同时检查 navigator.maxTouchPoints > 0,或使用 Client Hints 的 Sec-CH-UA-Platform——单看 UA 已不可靠。

为什么 Chrome 的 UA 里也有 Safari / AppleWebKit / Mozilla?

历史兼容包袱。Mozilla/5.0 来自 Netscape 时代,当年很多网站只给 Mozilla 发"高级页面";后来 Chrome 沿用 Blink/WebKit,UA 里写 AppleWebKit/537.36 (KHTML, like Gecko) 是为了通过那些只识别 WebKit/Gecko 的老站点;末尾的 Safari/... 同样是兼容祖传逻辑。ua-parser-js 按优先级正则匹配,先识别 Edg/ Chrome/,再回退到 Safari,所以解析结果是准确的

微信、支付宝、钉钉内置浏览器怎么识别?

看 UA 的厂商后缀关键字:微信MicroMessenger/<版本>支付宝AlipayClient/钉钉DingTalk/QQ 浏览器MQQBrowser/。本工具检测到任一关键字会高亮对应徽章。识别这些场景的常见用途:微信内禁止跳转外链、不能调起支付宝;分享需要走 JS-SDK;钉钉有自己的免登/扫码 API。判断方法不分 iOS/Android,UA 关键字一致。

UA 可以伪造吗?解析结果可信吗?

完全可以伪造——浏览器 DevTools 的设备模拟、curl -A、Python requests 的 headers、Postman 都能任意改 UA。爬虫伪装成 Chrome 是常态。所以 UA 只能作为参考信息,绝不能用作安全校验:禁止用 UA 判断"是不是真人 / 是不是 iOS"再放行敏感操作。生产环境的爬虫识别需要结合 IP 信誉、JS 挑战、行为指纹等多重手段,单看 UA 会被分分钟绕过。

Client Hints 是什么?会取代 UA 吗?

Chrome / Edge 自 2020 年起推动 User-Agent Client Hints(UA-CH),把 UA 拆成多个独立请求头:Sec-CH-UA(浏览器列表)、Sec-CH-UA-PlatformSec-CH-UA-MobileSec-CH-UA-Model 等,按需协商发送,更精确也更隐私友好。同时 UA 字符串本身正在 freeze——版本号会停留在固定值,未来从 UA 拿不到精准 minor 版本。当前过渡期:UA-CH 优先,传统 UA 兜底。ua-parser-js v2 已支持 withClientHints() 联合解析。

桌面端 UA 里 CPU 架构经常显示空,为什么?

正常——大多数桌面浏览器的 UA 不携带精确架构。Windows 64 位会写 Win64; x64,能识别为 amd64;macOS 完全不区分(Intel / Apple Silicon 都是 Intel Mac OS X 10_15_7);Linux 通常只写 Linux x86_64。Apple Silicon Mac 在 UA 里故意保留 Intel 字样作为 Rosetta 时代的兼容遗产,这意味着从 UA 无法区分 Intel Mac 与 M1/M2/M3 Mac,必须用 Client Hints 的 Sec-CH-UA-Arch 才能拿到真实架构。