跳至内容

随机用户代理生成器 - 创建浏览器字符串

随机用户代理生成器可以为Chrome、Firefox、Safari和Edge等主流浏览器生成逼真的桌面端与移动端用户代理字符串,模拟不同浏览器版本和设备型号发出的HTTP请求头信息。该免费工具适用于浏览器兼容性测试、响应式网页调试以及接口访问行为的模拟验证场景。

随机用户代理生成器

为Web开发测试生成随机、逼真的浏览器用户代理字符串。

生成的用户代理

加载计算器...
📚

文档

随机用户代理生成器

随机用户代理生成器会创建示例用户代理字符串,即浏览器发送给网站、用于标识自身的简短文本行。该工具会生成符合 Chrome、Firefox、Safari 和 Edge 实际格式的字符串,覆盖桌面设备和移动设备,开发者无需分别安装这些浏览器,就能测试网站对不同浏览器的响应。

什么是用户代理字符串?

浏览器每次请求网页时,都会发送一个 User-Agent HTTP 标头。该标头是一行文本,描述浏览器名称、版本、操作系统和渲染引擎(浏览器用于绘制页面的部分)。网站可以读取此标头,以决定返回哪种页面布局或功能。

典型的用户代理字符串如下:

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

几乎所有浏览器都会以 "Mozilla/5.0" 开头。这是 1990 年代遗留下来的做法,当时网站会检查这个词,以判断浏览器是否具备查看页面的能力。较新的浏览器保留了这个标记,以免被旧式检查阻挡。

此生成器的工作原理

该工具有三个控件:

  1. 设备类型 – 桌面设备或移动设备。
  2. 浏览器系列 – Chrome、Firefox、Safari 或 Edge。
  3. 操作系统 – 桌面设备使用 Windows、macOS 或 Linux;移动设备使用 iOS 或 Android。

现实中并不存在所有组合,因此该工具会限制可选项。Safari 只显示在 macOS 和 iOS 下,因为 Apple 没有为 Windows、Linux 或 Android 发布 Safari。Chrome、Firefox 和 Edge 可用于所有列出的操作系统,包括 iOS;在 iOS 上,它们运行在 Apple 的 WebKit 引擎之上,而不是使用各自的引擎。

点击“生成新的”会根据这三个设置和随机选择的版本号生成字符串。“复制”按钮会将结果复制到剪贴板。

按浏览器分类的用户代理字符串格式

每种浏览器都会使用相似的模板,并填入自己的标记。

Chrome(桌面版):

1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36
2

Chrome(Android):

1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36
2

Chrome(iOS):

1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/major.0.build.build Mobile/15E148 Safari/604.1
2

Firefox(桌面版):

1Mozilla/5.0 (platform; rv:major.0) Gecko/20100101 Firefox/major.0
2

Firefox(Android):

1Mozilla/5.0 (Android version; Mobile; rv:major.0) Gecko/major.0 Firefox/major.0
2

Firefox(iOS):

1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/major.0 Mobile/15E148 Safari/605.1.15
2

Safari(macOS):

1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Safari/605.1.15
2

Safari(iOS):

1Mozilla/5.0 (iPhone; CPU iPhone OS major_minor like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor Mobile/15E148 Safari/604.1
2

Edge(桌面版):

1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Safari/537.36 Edg/major.0.build.build
2

Edge(Android):

1Mozilla/5.0 (platform) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/major.0.0.0 Mobile Safari/537.36 EdgA/major.0.build.build
2

Edge(iOS):

1Mozilla/5.0 (platform) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/major.minor EdgiOS/major.0.build.build Mobile/15E148 Safari/605.1.15
2

Apple 要求所有 iOS 浏览器使用 WebKit,因此上面的 iOS 格式都包含 Safari 的 AppleWebKit/605.1.15 引擎标记,并添加特定于浏览器的标记:Chrome 使用 CriOS/,Firefox 使用 FxiOS/,Edge 使用 EdgiOS/。它们都不包含 Chrome/ 或 Gecko/ 标记。iOS 上的 Safari 和 Edge 还会发送 Version/ 标记,用于标示随操作系统发布的 Safari 版本,因此它始终与同一字符串中的 iOS 版本一致。

自 2021 年起,Chrome 和 Edge 等基于 Chromium 的浏览器在桌面设备和 Android 上冻结了版本号的大部分内容,以减少标头中可用于识别的信息量,这一变化被 Google 称为“用户代理缩减”。这些字符串中的 Chrome 标记不再显示真实构建号,而始终显示为 major.0.0.0(例如 128.0.0.0),该生成器也遵循这一行为。例外是 Edge 自有的标记——桌面版为 Edg/,Android 版为 EdgA/,iOS 版为 EdgiOS/——以及在 iOS 上运行的 Chrome(CriOS/),它们仍然包含完整的四段式构建号,因为 Google 的缩减政策不适用于它们。

Firefox 没有采用相同的冻结方式。它的实际版本字符串通常只有两段,即 major.0,生成器也会生成这种格式。安全补丁发布后,实际环境中可能出现 95.0.2 这样的三段式 Firefox 版本,但该工具只生成两段式格式。

示例输出

Windows 上的桌面版 Chrome:

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

macOS 上的桌面版 Firefox:

1Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:130.0) Gecko/20100101 Firefox/130.0
2

macOS 上的桌面版 Safari:

1Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15
2

Windows 上的桌面版 Edge:

1Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.2903.86
2

Android 上的移动版 Chrome:

1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36
2

Android 上的移动版 Edge:

1Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36 EdgA/128.0.2952.62
2

iPhone 上的移动版 Safari:

1Mozilla/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
2

Android 上的移动版 Firefox:

1Mozilla/5.0 (Android 13; Mobile; rv:130.0) Gecko/130.0 Firefox/130.0
2

iPhone 上的移动版 Chrome:

1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/128.0.6613.98 Mobile/15E148 Safari/604.1
2

iPhone 上的移动版 Firefox:

1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/130.0 Mobile/15E148 Safari/605.1.15
2

iPhone 上的移动版 Edge:

1Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 EdgiOS/128.0.2952.62 Mobile/15E148 Safari/605.1.15
2

桌面版与移动版的差异

桌面版字符串会标明操作系统,并且通常会标明处理器架构:Win64; x64 表示 64 位 Windows,Mac 则使用 Intel Mac OS X。由于需要表示的桌面平台只有少数几种,其格式相当统一。

移动版字符串通常会添加“Mobile”一词,使网站知道应提供适合触控操作的布局。iOS 设备会将“iPhone”与 iOS 版本一起标示,版本号使用下划线(17_4),并省略末尾的零补丁号,因此使用 17_4 而不是 17_4_0。Android 则有所不同:由于同一版本缩减政策也影响 Chrome 的构建号,Android 上的 Chrome 和 Edge 始终将平台报告为 Linux; Android 10; K,无论实际运行的是哪个 Android 版本或手机型号。“K”是占位符,并非真实的设备代码,实际 Android 版本会被隐藏。Android 版 Firefox 不会以相同方式冻结版本,而是报告真实的 Android 主版本号,但完全不包含设备型号。在 Android Chrome 字符串中显示具体手机型号(例如 Galaxy 型号)的生成器,不符合当前真实 Chrome 的行为。

用户代理字符串为何看起来令人困惑

由于数十年的兼容性修补,该字符串看起来十分杂乱。在 1990 年代后期的“浏览器大战”中,一些网站只向 Netscape 或只向 Internet Explorer 提供较好的页面,并检查标头中的关键词。竞争浏览器随后也将这些关键词加入自己的字符串,以免被拒绝访问。因此,尽管 Chrome 不使用名为“Safari”或“Gecko”的引擎,其字符串中仍会提到“Safari”和“like Gecko”。每个标记都是为了满足旧式兼容性检查而保留的历史痕迹,并不一定准确描述软件。

由于仍有许多网站会解析这些字符串,浏览器制造商不能简单地删除其中的杂乱内容,否则会导致页面无法正常工作。长期替代方案称为 User-Agent 客户端提示,它会将浏览器详情作为独立的结构化标头发送,而不是放在一条很长的字符串中;但出于向后兼容的考虑,经典的 User-Agent 标头仍会在各处发送。

常见用途

  • 兼容性测试。 检查页面在检测到特定浏览器时的呈现效果,无需安装该浏览器。
  • 响应式设计检查。 确认网站在收到移动版用户代理时提供移动布局,否则提供桌面布局。
  • 自动化测试套件。 将一系列用户代理字符串输入测试脚本,检查浏览器检测代码是否能正确处理每个字符串。
  • API 和标头测试。 验证服务器在不同客户端类型发送请求时是否能正确运行。

局限性

用户代理标头只是网站可以读取的众多信号之一。页面中的脚本还可以检查数十种其他细节,例如已安装的字体、屏幕尺寸,以及显卡如何渲染测试图像;这种技术称为指纹识别。实际使用 Firefox 浏览却设置 Chrome 用户代理,无法欺骗会检查这些其他信号的网站,因为不匹配很容易被检测出来。不过,对于日常开发和质量保证工作,格式正确的生成字符串足以测试网站的服务器端和客户端代码如何响应不同的浏览器和设备。

常见问题

什么是用户代理字符串? 它是浏览器随每次网页请求发送的一行文本,其中标明浏览器、版本、操作系统和渲染引擎。服务器利用它决定返回哪些内容或布局。

为什么 Chrome 版本总是以 .0.0.0 结尾? 自 2021 年起,Chrome 冻结了其在 User-Agent 标头中报告的版本号的大部分内容,以减少指纹识别。只有主版本号会变化,其余部分固定为 .0.0.0。Edge 自有的标记以及 iOS 上的所有浏览器是例外,它们仍会显示完整的构建号。

为什么选择其他浏览器时,iPhone 字符串仍会显示“Safari”? Apple 要求所有 iOS 浏览器使用其 WebKit 引擎,因此 iOS 上的 Chrome、Firefox 和 Edge 都会报告 WebKit,并以 Safari/ 标记结尾。浏览器名称由单独的标记表示:Chrome 使用 CriOS/,Firefox 使用 FxiOS/,Edge 使用 EdgiOS/。

为什么 Android 字符串不显示我的手机型号? 作为同一版本缩减政策的一部分,现代 Android 版 Chrome 和 Edge 对每台设备及每个实际 Android 版本都报告固定的平台字符串 Linux; Android 10; K,该政策也影响 Chrome 的构建号。真实型号和 Android 版本不会被公开。

可以使用生成的用户代理进行网页抓取吗? 可以更改标头,但网站可能通过其他信号检测出不匹配,而且抓取行为可能违反网站的服务条款或 robots.txt 规则。抓取前应查看网站的相关政策。

生成的字符串与真实设备上的字符串完全相同吗? 它遵循该类型真实浏览器使用的相同格式和标记顺序。由于 Chrome 和 Edge 在 Android 上冻结了版本号,生成的 Android Chrome 字符串与真实字符串的平台部分可能完全相同,因为真实设备报告的也是同一个固定值。

什么是客户端提示?它会取代用户代理字符串吗? 客户端提示是一种较新的系统,会将浏览器和设备详情作为独立的 HTTP 标头发送,而不是合并为一个字符串。浏览器正在逐步增加对此功能的支持,但经典的 User-Agent 标头仍被广泛使用,因为许多现有网站仍依赖它。