访问日志里有一长串 User-Agent,想先区分桌面浏览器、手机浏览器和自定义客户端,可以使用宝塔拨测的“User-Agent分析”。把字符串放进去,工具会按规则整理出 Browser、Engine、OS、Device 和 CPU 信息,省去逐个查找标记的步骤。

这些结果来自字符串中的线索。本文使用公开构造的示例,不代表有对应设备实际访问,也不用于证明访问者身份。排查时应把原始字符串一起保留,方便与识别结果对照。

先分析一条桌面浏览器示例

进入“User-Agent分析”,在“User-Agent 字符串”中输入以下内容,再点击“解析”:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36

本次 Browser 显示 Chrome,版本为 131.0.0.0;OS 显示 Windows,版本为 10/11;CPU 架构显示 amd64。Device 的型号、类型和厂商则都为“未识别”。

桌面示例识别为 Chrome 与 Windows 10/11,CPU 显示 amd64,设备型号等字段未识别
桌面示例识别为 Chrome 与 Windows 10/11,CPU 显示 amd64,设备型号等字段未识别

这里应保留结果本来的精度。既然系统版本写的是 10/11,就不能据此断定访问者一定使用 Windows 11;Device 未识别,也不等于请求一定来自异常设备,只能说明当前规则没有从这份字符串里给出更细的设备信息。

同一条结果的 Engine 卡片显示了 Blink 和 537.36。这是本次工具给出的文本识别结果,不是对远端浏览器内核进行运行检测。涉及某项功能是否支持时,应回到实际浏览器测试,不要用卡片上的名称、版本代替能力验证。

手机示例,看设备字段有没有更多线索

将输入替换成下面这条 iPhone Safari 形式的字符串,再次点击“解析”:

Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1

本次 Browser 显示 Safari 17.0,OS 显示 iOS 17.0;Device 显示 iPhone、类型 mobile、厂商 Apple;CPU 架构仍为“未识别”。

手机示例识别为 Safari、iOS 与 iPhone,设备类型为 mobile,CPU 架构仍未识别
手机示例识别为 Safari、iOS 与 iPhone,设备类型为 mobile,CPU 架构仍未识别

对比桌面示例,手机这条字符串带了更明确的设备线索,因此能填出型号、类型和厂商。这里的 iPhone 是设备系列名称,不是具体到某一代机型。结果没有给出的信息,不应靠系统版本或浏览器版本继续猜出来。

如果只是想查看自己当前浏览器提供的字符串,可点击“使用当前浏览器 UA”。本次实际操作会用当前浏览器可读取的 UA 替换输入并更新结果。每个人的结果可能不同,复制给同事时应注明是哪次浏览器环境下取得的值。

自定义客户端没有结果时,保留原始值

再输入一条虚构自定义标记:

DemoMonitor/1.0

点击“解析”后,本次没有显示前两次的结果卡片,页面仍提示“请输入 User-Agent 字符串进行解析”,尽管输入框中已有文本。

非空的 DemoMonitor/1.0 输入没有产生识别卡片,页面仍显示输入提示
非空的 DemoMonitor/1.0 输入没有产生识别卡片,页面仍显示输入提示

遇到这类结果,应按“当前工具未得到可展示的识别信息”处理。不能根据这句提示倒推出日志没有记录 UA,也不能据此断定客户端非法。先检查复制是否完整,再把原始字符串与请求时间、路径、状态码等日志信息一起保留,必要时按客户端自己的文档确认这段标记。

用来整理线索,身份和能力仍需另外核对

User-Agent 可以由客户端设置,也可能因兼容性或隐私保护而简化。只要换一段文字,识别工具就可能显示另一种浏览器或设备;本文在同一个页面输入桌面和手机示例,就得到两组不同结果,并不意味着实际运行环境也跟着改变。

因此,看到 Chrome 名称不能证明页面一定支持某个 API,看到手机标记不能证明请求一定由真实手机发出,看到爬虫名称也不能单独确认爬虫身份。功能支持应通过实际功能检测或复现核对,访问身份则结合其他可验证信息判断。

分析日志时,这项工具适合做第一轮归类:先保留原始 UA,再记录识别到的浏览器、系统与设备线索,最后只围绕已有证据继续排查。遇到“未识别”或没有卡片的输入,就把它留为待确认项。