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

任何建議都是值得讚賞的,因為我被一個字串困住了,如果使用的話,它會破壞一些網站。請注意,我們確實需要在使用者代理字串中指定自訂項目以支援我們無法控制的第 3 方平台。

答案1

這是可能的某一時間點,但該功能已被棄用,不再直接支援。

HTTP 協商期間報告的用戶代理字串(「伺服器看到的」)與透過DOM 屬性報告的值之間的差異是一個有意的更改,旨在(部分)應對人們在以下情況下重載用戶代理字符串的情況:正是這種時尚

第一篇文章描述了一組一次性調整 DOM 使用者代理字串的註冊表值;發布平台設定可能會繼續有效。您需要調整執行該工具的所有用戶端電腦的設定。

如果發布平台的變更沒有成功,您將需要考慮一種不同的方法,也許是利用跨平台策略

希望這可以幫助...

——蘭斯

答案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 mode在 IE 上也會更改 UA 字串以顯示先前的 IE 版本,以「強制」伺服器認為它compatibility mode較舊的版本(我認為它使用 IE6 或 7),所以如果有人需要使用它來加載網頁,也許您想要的大部分內容將變得毫無用處。

相關內容