解析任意User Agent字符串,识别浏览器、操作系统和设备类型
Parse any User Agent string to identify browser, OS, and device type
User-Agent 解析工具是一款解析浏览器 User-Agent 字符串的在线工具。User-Agent(UA)是浏览器在 HTTP 请求头中发送的标识字符串,包含了浏览器名称和版本、操作系统、设备类型、渲染引擎等信息。例如 Chrome 的 UA 字符串可能包含 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36"。通过解析 UA 字符串,开发者可以了解访问者的设备环境,进行兼容性处理、用户统计分析、A/B 测试分组等。本工具将 UA 字符串拆解为结构化信息,清晰展示浏览器、操作系统、设备类型和渲染引擎等详情。
用户报告页面在某些浏览器上显示异常时,获取其 UA 信息确认具体的浏览器版本和操作系统。例如确认是否使用了 IE、旧版 Safari 或特定版本的 Chrome。
分析网站访问日志中的 UA 分布,了解用户的设备和浏览器使用情况。据此决定需要支持哪些浏览器版本、是否需要优化移动端体验。
识别 HTTP 请求是来自真实浏览器还是爬虫/机器人。搜索引擎爬虫(Googlebot、Bingbot)和恶意爬虫的 UA 各有特征,解析工具帮助快速分类。
User-Agent 字符串的格式没有严格标准,但遵循大致模式:Mozilla/版本 (系统信息) 引擎/版本 浏览器/版本。解析通常使用正则表达式匹配已知模式。现代 UA 解析推荐使用 ua-parser-js 库,覆盖主流浏览器和设备。注意:Chrome 正在推进 User-Agent Client Hints 逐步替代传统 UA 字符串,减少浏览器指纹追踪。
// 使用 ua-parser-js 解析
const UAParser = require('ua-parser-js');
const parser = new UAParser(navigator.userAgent);
console.log(parser.getBrowser()); // { name: "Chrome", version: "120.0.0" }
console.log(parser.getOS()); // { name: "Windows", version: "10" }
console.log(parser.getDevice()); // { type: undefined, model: undefined }
console.log(parser.getEngine()); // { name: "Blink", version: "120.0.0" }
// 原生方式(简单解析)
const ua = navigator.userAgent;
const isMobile = /Mobile|Android|iPhone/i.test(ua);
const isChrome = /Chrome/.test(ua) && !/Edg/.test(ua);
'fetch' in window)判断浏览器能力。A>这是历史兼容性原因。早期很多网站只检测 UA 中是否包含 "Safari" 来决定是否提供 WebKit 兼容的页面。Chrome 为了被正确识别,在 UA 中同时包含 "Chrome" 和 "Safari"。判断是否为 Chrome 应检查 "Chrome" 存在且 "Edg" 不存在(排除 Edge)。
A>检查 UA 中是否包含 Mobile、Android、iPhone、iPad 等关键词。但更可靠的方式是结合 CSS 媒体查询(视觉适配)和 JavaScript 的 touch 事件检测(交互适配),而不是仅依赖 UA。
A>可以。浏览器允许通过扩展或配置修改 UA 字符串,爬虫也可以伪造 UA。因此不要将 UA 作为安全机制(如仅允许特定浏览器访问)。UA 分析应仅用于统计和兼容性辅助决策。
A>Google 提出的新标准,用结构化的 HTTP 头替代混乱的 UA 字符串。浏览器通过 Sec-CH-UA 头发送品牌、版本等信息,服务端按需请求更多详情。优点是更隐私友好(减少浏览器指纹),格式更规范。Chrome 已在逐步推进。
A>在 Express 中:req.headers['user-agent'] 或 req.get('User-Agent')。在 Koa 中:ctx.get('User-Agent')。获取 UA 字符串后使用 ua-parser-js 库解析。注意获取到的是客户端浏览器发送的原始字符串。