Internet Explorer:编辑用户代理字符串,以便服务器可以看到它

Internet Explorer:编辑用户代理字符串,以便服务器可以看到它

操作系统:Windows 7/8
浏览器:Internet Explorer 11
平台:x86

我该如何在一台机器上编辑用户代理字符串,以便服务器端代码和 Web 服务器日志都能看到它?这需要一种永久的、可部署的解决方案,因此使用开发人员工具之类的方法可能不会长期有效。

我能够设置/修改 Internet Explorer 的用户代理字符串以便远程 Web 服务器能够看到它的唯一方法是使用以下注册表项\值:

Key:   HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Version
Value: SomeTestString
Data:  NULL

以上显然是组策略设置所利用的内容Windows Components\Internet Explorer\Customize User Agent String

如果您添加如上所示的键/值,您的用户代理将显示为类似的Mozilla/5.0 (SomeTestString; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko 不幸的是,这添加添加到用户代理字符串的自定义字符串,这会破坏许多 Google 网站和 Netflix(可能还有很多其他网站)

使用我发现的另一个注册表项/值将通过 JavaScript 查询显示用户代理字符串,但它不会出现在网站日志中(服务器不可见):

Key:   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
Value: SomeTestString
Data:  NULL

如果您查看 Web 服务器的日志,您只会看到如下内容:Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko,但如果您点击使用 JavaScript 显示用户代理的页面,您会看到如下内容:Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; SomeTestString; rv:11.0) like Gecko

任何建议都值得感激,因为我被困在一个字符串中,如果使用这个字符串,某些网站就会崩溃。请注意,我们需要在用户代理字符串中指定自定义项,以支持我们无法控制的第三方平台。

答案1

这是可能的某一时间点,但该功能已被弃用并且不再直接受支持。

HTTP 协商期间报告的用户代理字符串(“服务器看到”)与通过 DOM 属性报告的值之间的差异是一种故意的改变,部分是为了应对人们在正是这种方式

第一篇文章描述了一组一次性调整 DOM 用户代理字符串的注册表值;Post Platform 设置可能会继续起作用。您需要调整运行该工具的所有客户端计算机的设置。

如果邮政平台的改变没有成功,你就需要考虑采取不同的方法,也许可以采用跨平台策略

希望这可以帮助...

-- 兰斯

答案2

您可以使用 IE 的“开发人员工具”。

只需按下F12来激活它。

  • 在旧版本中,它位于工具菜单,更改用户代理字符串并对其进行自定义。

  • 在较新的版本中,它位于仿真菜单。


经过一番研究,我找到了一些可以调整的注册表项部分UA 字符串。

A干净的Win7 上的 IE11 使用Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

Win8 使用NT 6.3通常会在Touch某处添加。

我认为那些默认值不能通过注册表更改,不过我认为你可以.NET通过删除下面的条目来删除它添加的大部分内容和其他内容

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]

只需考虑到compatibility modeIE 也会更改 UA 字符串以显示以前的 IE 版本,以“强制”服务器认为它compatibility mode旧版本(我认为它使用 IE6 或 7),所以如果有人需要使用它来加载网页,那么你想要的大部分内容可能会变得毫无用处。

相关内容