用户代理解析
解析 User-Agent 字符串,识别浏览器、操作系统和设备信息。

用户代理解析是一款免费工具,可读取用户代理字符串,并返回其中的浏览器、操作系统和设备类型。
用户代理字符串能告诉你什么?
用户代理字符串是 HTTP User-Agent 字段的值,对于网页浏览器,它通常包含产品名称、版本号、操作系统标记和设备线索。命令行客户端、爬虫、订阅阅读器和应用内浏览器也可以发送用户代理字符串。
这种格式看起来有规律,实际却并非如此。浏览器经常加入与其他浏览器有关的兼容性标记,因此只匹配第一个可识别的产品名称可能会得出错误结果。例如,基于 Chromium 的浏览器通常同时包含与 Chrome 和 Safari 有关的标记。解析器会分析标记的组合与顺序,而不是把它们当作一份简单列表。
用户代理数据由客户端自行报告。客户端可以修改甚至伪造这些信息,部分浏览器也会减少对外提供的版本和设备信息。因此,解析结果适合用于分类和调试,但不能作为设备身份的证明。
如何使用用户代理解析?
将完整的请求头值粘贴到 用户代理 字段,然后运行工具。工具会返回 Browser、操作系统 和 设备类型 三个字段。
- 从 HTTP 请求、访问日志或浏览器开发者工具中,复制 User-Agent 后面的值。
- 保留原有的空格、括号、分号、斜杠和版本号。这些字符用于分隔字符串中的产品信息和注释。
- 提交该值,然后结合请求上下文核对返回的分类。
- 在自己的调试记录中,同时保留原始字符串和解析结果。仅看分类可能会遗漏有用的版本标记或兼容性标记。

解析过程在服务器上运行。你的用户代理字符串会通过 HTTPS 发送到服务器,且不会被存储。即便如此,提交前仍应检查复制的日志条目是否包含无关的查询参数、会话标识符或内部主机名。
如何理解解析结果?
每个字段都是根据客户端提供的标记推断出的分类,不能将其视为经过独立验证的硬件或软件信息。
- Browser 表示从字符串中识别出的浏览器或客户端系列。嵌入式网页视图和基于 Chromium 的浏览器共享大量标记,因此可能更难区分。
- 操作系统 表示 Windows NT、Android、iPhone OS、Mac OS X 或 Linux 等标记所指示的平台。兼容层和经过修改的用户代理可能会使结果不够具体。
- 设备类型 根据设备及平台标记,将客户端归入较宽泛的设备形态类别。应把它看作实用分类,而不是精确的硬件型号。
这些结果字段并不是语法验证报告。格式错误、内容过短或无法识别的用户代理可能缺少足够的信息,无法得到有用的分类,但用户代理并不存在像 JSON 尾随逗号或键名未加引号那样的通用错误清单。用户代理解析很大程度上依赖启发式判断,因为不同客户端生成的实际字符串差异很大,而且经常保留旧式兼容语法。
空值没有任何可供分类的信息。很长的值可能包含扩展信息、应用标识符或重复的产品标记,而数字通常只有与其所对应的产品标记结合起来才有意义。自定义客户端字符串中可能出现带重音符号或非拉丁字符,但这些字符本身并不能自动识别浏览器、操作系统或设备。

解析示例
输入 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
解析器通常会将其识别为 Windows 上的 Chrome,并归类为桌面设备。其中的 Safari 标记用于兼容,不能仅凭这一标记就把浏览器判断为 Safari。
输入 Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1
这表示设备使用 iOS 上的 Safari,并属于移动设备。"like Mac OS X" 是兼容性信息的一部分,iPhone 和 Mobile 标记才是更有力的设备线索。
如果用户代理是在 URL 查询参数中捕获的,它可能经过百分号编码。请先使用 URL解析分离并解码该参数,再解析得到的用户代理值。
哪些情况适合解析用户代理,哪些情况不适合?
当你需要看懂陌生请求,或希望在部署前检查分类逻辑时,用户代理解析很有帮助。常见场景包括检查 Apache 或 nginx 访问日志中的条目、调查特定浏览器的页面渲染问题、核查嵌入式应用产生的流量,以及查看从分析平台导出的原始数据。
如果其他系统已经以结构化字段提供浏览器、操作系统和设备信息,通常没有必要再解析。如果服务只需转发或归档原始请求头,解析的意义也不大。不要把解析结果作为身份验证、欺诈检测或访问控制的唯一依据,因为发送方可以伪造该字符串。
对于响应式布局,CSS 媒体查询和功能检测通常比服务器端的设备推测更可靠。应在需要诊断或报告上下文时解析用户代理,而不是据此认定客户端支持某项特定的浏览器功能。
常见问题
能通过解析结果判断请求是不是机器人吗?
不能仅凭返回字段判断,因为其中没有专门的机器人分类。有些爬虫会在用户代理中清楚表明身份,但也有爬虫会模仿浏览器或省略有用信息。适当时,应结合请求频率规律、公开发布的爬虫 IP 核验信息和请求行为来确认自动化流量。
为什么 Edge 的用户代理中会出现 Chrome 和 Safari?
因为现代 Edge 基于 Chromium,并包含供检查用户代理的网站使用的兼容性标记。解析器必须先查找更具体的 Edge 标记,再将请求归类为普通 Chrome 或 Safari。标记的顺序和具体程度都很重要。
可以根据设备类型重定向移动端访客吗?
可以把设备类型当作参考,但强制重定向可能会错误识别平板电脑、使用桌面模式的浏览器以及修改过的用户代理。优先使用响应式页面。如果确实必须提供独立的移动版体验,应允许访客自行选择其他版本。
浏览器客户端提示会取代用户代理解析吗?
不一定。当浏览器和服务器都支持时,客户端提示可以提供结构化的浏览器和平台信息,但并非每个请求或客户端都会携带这些信息。需要处理旧版浏览器、爬虫和现有访问日志的系统,可能仍然需要解析用户代理。只存储当前任务所必需的用户代理分类信息,并遵守适用的隐私义务。