User-Agent Parser
Understand User-Agent Parser
把浏览器的 user-agent 字符串拆解为浏览器名称与版本、操作系统、渲染引擎和设备类型。
How it works
user-agent 字符串是一个无结构的头字段,三十年来不断堆积兼容性标记,因此解析它靠的是按特定顺序做模式匹配,而不是读取字段。每个 Chromium 系浏览器都含有子串 "Chrome",因此必须先按 "Edg/" 匹配 Edge 再匹配 Chrome,而 Chrome 又必须排在 Safari 之前,因为 Chrome 同样携带 "Safari/537.36"。真正要紧的版本通常不是字符串里的第一个:Safari 在 "Version/17.0" 中报告它真正的版本,而 "Safari/605.1.15" 是 WebKit 的构建号。本工具用正则在本地匹配,不向任何地方发送内容。
When to use it
- 从服务器或 CDN 访问日志中读取原始 User-Agent 值,看清究竟是什么在访问某个端点
- 当缺陷报告里唯一给出的环境信息就是一段粘贴的 UA 字符串时,用它复现问题
- 核查把浏览器分组得很奇怪的统计数据,通常是因为某个 Chromium 分支被算成了 Chrome
- 判断一个请求来自爬虫、无头浏览器还是真实客户端
Watch out for
- user-agent 字符串是自行声明的,用一行代码或 DevTools 里的一个开关就能改掉。绝不要据此进行安全、授权或访问控制的判断。
- Windows 11 依然报告 "Windows NT 10.0"——微软从未递增 NT 版本号,因此仅凭 UA 无法区分 Windows 10 和 11。出于同样的指纹追踪顾虑,macOS 在 Safari 和 Chrome 中自 Big Sur 起就冻结在 "10_15_7"。
- Chrome 和 Edge 正在有意精简 UA 字符串。次要版本号正被置零,平台细节正被移除,因此特性检测或 User-Agent Client Hints API 才是取代解析的长久方案。
- 设备类型是从 "Mobile"、"iPad" 这类标记推断出来的,而不是测量出来的。桌面模式下的 iPad 会报告成 Mac,而大屏 Android 平板可能带也可能不带 "Tablet"。
Not the right tool for: 决定启用哪些功能。请检测能力本身(`if ("share" in navigator)`),而不是从浏览器名称推断——UA 嗅探会在每一个你没预料到的浏览器上失效。
Frequently Asked Questions
我的 user agent 是什么?
user agent 是你的浏览器随每次请求发送的标识字符串,其中写明了它的引擎、版本和操作系统。本工具从 navigator.userAgent 读取它,并在页面加载的那一刻就拆解显示,让你无需打开开发者工具就能读到自己的那一条。
如何获取浏览器的 user-agent 字符串?
打开 DevTools 控制台(F12)并输入 navigator.userAgent。或者在你的服务器上查看进入请求日志中的 User-Agent 头。有些分析工具也会暴露原始 UA 字符串。
Chrome 的 user-agent 为什么这么长?
历史上,网站会根据浏览器提供不同内容。Chrome 中包含 "Mozilla/5.0"(旧的 Netscape 标记)、"AppleWebKit"(面向基于 WebKit 的站点)、"Gecko"(面向基于 Gecko 的回退分支)和 "Chrome/X"(它真正的版本)。这种以兼容为先的做法造就了冗长的格式。
如何判断一个 user agent 是不是机器人或爬虫?
机器人的 user agent 通常包含 "bot"、"crawler"、"spider"、"slurp" 或服务名称(Googlebot、Bingbot、AhrefsBot、facebookexternalhit)。本工具会标记已知的机器人模式。正规爬虫还具备反向 DNS,并会公布自己的 IP 段。
How to Use User-Agent Parser
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.