User-Agent 解析/ 浏览器 · OS · 设备

解析 User-Agent 字符串,识别浏览器类型/版本、操作系统、设备类型和渲染引擎,自动检测当前浏览器 UA。

User-Agent
示例

这个工具有帮到你吗?

代码示例

JavaScript (Browser)
// Current browser's UA
navigator.userAgent
// Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...

// Modern: UA Client Hints (Chrome 90+)
const uaData = navigator.userAgentData;
uaData.brands    // [{brand:'Chromium',version:'124'},...]
uaData.mobile    // false
uaData.platform  // 'macOS'

// High-entropy hints (requires user permission)
const hints = await uaData.getHighEntropyValues([
  'platformVersion', 'architecture', 'model'
]);
hints.platformVersion  // '14.0.0'
hints.architecture     // 'arm'
Node.js / Express
// npm install ua-parser-js
const UAParser = require('ua-parser-js');

app.get('/api', (req, res) => {
  const ua = req.headers['user-agent'];
  const parser = new UAParser(ua);
  const result = parser.getResult();

  // result.browser  → { name: 'Chrome', version: '124.0' }
  // result.os       → { name: 'macOS', version: '14' }
  // result.device   → { type: 'mobile', model: 'iPhone' }
  // result.engine   → { name: 'Blink', version: '124.0' }
  res.json(result);
});

// Next.js (App Router)
import { headers } from 'next/headers';
const ua = headers().get('user-agent') ?? '';
Python
# pip install user-agents
from user_agents import parse

ua_string = (
  'Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 '
  'like Mac OS X) AppleWebKit/605.1.15 '
  '(KHTML, like Gecko) Version/17.4.1 '
  'Mobile/15E148 Safari/604.1'
)
ua = parse(ua_string)

ua.browser.family   // 'Mobile Safari'
ua.browser.version  // (17, 4, 1)
ua.os.family        // 'iOS'
ua.os.version       // (17, 4)
ua.device.family    // 'iPhone'
ua.is_mobile        // True
ua.is_bot           // False
Go
// go get github.com/mssola/useragent
import "github.com/mssola/useragent"

ua := useragent.New(
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" +
  " AppleWebKit/537.36 Chrome/124.0.0.0 Safari/537.36")

ua.Mobile()  // false
ua.Bot()     // false
name, ver := ua.Browser()
// name = "Chrome", ver = "124.0.0.0"
ua.OS()      // "Windows 10"
ua.Platform() // "Windows"

常见问题

User-Agent 是什么?
User-Agent(UA)是 HTTP 请求头的一个字段,浏览器或客户端用它向服务器描述自己的身份:浏览器类型、版本、操作系统、渲染引擎等。服务器可以根据 UA 返回针对特定设备优化的内容。
为什么所有浏览器都声称自己是 Mozilla?
历史原因。早期 Netscape Navigator 使用 Mozilla/x.x,IE 为了接收与 Netscape 相同的内容,也声称自己是 Mozilla 兼容的,后来所有浏览器都沿袭了这个格式。
如何在服务端获取 User-Agent?
HTTP 请求头 User-Agent 在任何 HTTP 服务器上都可以读取。Node.js/Express: req.headers['user-agent']。Python Flask: request.headers.get('User-Agent')。Go: r.Header.Get("User-Agent")。
Googlebot 的 User-Agent 是什么?
Googlebot 的 UA 格式为:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)。可以通过 UA 字符串检测爬虫,但注意 UA 可以被伪造。
User-Agent Client Hints 是什么?
User-Agent Client Hints(UA-CH)是 Chrome 推出的新标准,旨在逐步替代传统 UA 字符串,提供更结构化的设备信息,同时减少信息泄露(隐私保护)。
User-Agent 可以被伪造吗?
是的,User-Agent 完全由客户端控制,可以随意修改。不要将 UA 检测用于安全验证。移动端检测、爬虫过滤等功能应结合其他信号(IP、行为模式、TLS 指纹)使用。