Internet Explorer: ユーザーエージェント文字列を編集してサーバー側で確認できるようにする

Internet Explorer: ユーザーエージェント文字列を編集してサーバー側で確認できるようにする

OS: 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 クエリを介してユーザー エージェント文字列が表示されますが、Web サイトのログには表示されません (サーバーには表示されません)。

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 プラットフォーム設定が引き続き機能する可能性があります。ツールを実行しているすべてのクライアント マシンの設定を調整する必要があります。

投稿プラットフォームの変更がうまくいかない場合は、別のアプローチを検討する必要があります。クロスプラットフォーム戦略

お役に立てれば...

-- ランス

答え2

IE の「開発者ツール」を使用できます。

押すだけF12それをアクティブにします。

  • 古いバージョンでは、ツールメニュー、ユーザーエージェント文字列を変更するカスタマイズします。

  • 新しいものの場合は、エミュレーションメニュー。


少し調べた後、変更できるレジストリエントリをいくつか見つけました。一部UA 文字列の。

クリーン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 を使用していると思います) なので、誰かがWeb ページを読み込むために使用する必要がある場合、必要なもののほとんどは役に立たなくなる可能性があります。

関連情報