0

プログラムでブラウザの User-Agent を取得する必要があります: Windows 7 の IE10。

それは簡単な仕事のはずです。javascript で navigator.userAgent を、Silverlight で HtmlPage.BrowserInformation.UserAgent を試したところ、どちらも次のように返されました。

Mozilla/5.0 (互換性; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4. 0E; InfoPath.3; .NET4.0C)

、素敵に見えます。ただし、Fiddler で気づいたように、Web サイトを閲覧するときに実際の UA IE10 が送信するのは次のとおりです。

Mozilla/5.0 (互換性; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

、これは短いバージョンです。IE10 が使用しているこの短い文字列を取得するにはどうすればよいですか?

(私は Firefox 19 をインストールしていますが、Firefox にはこの問題はありません。2 つのアプローチのユーザー エージェントは同じです。)

ありがとう、

4

2 に答える 2

0

他のアプリケーションには、.NET CLR、Media Centerなどのバージョンなど、上記の情報を追加するようにユーザーエージェントを変更する機会があります... http://msdn.microsoft.com/en-us/library/ms537503 (v = vs.85).aspx

Scott Hanselmanは、この情報の一部がWindowsレジストリhttp://www.hanselman.com/blog/TheNETFrameworkAndTheBrowsersUserAgentString.aspxからのものであるという投稿を少し前に持っていました。

ブラウザにアクセスするまでに、ユーザーエージェントは必要な情報が含まれるように更新されているため、残念ながら元のクリーンバージョンを取得することはできません。

通常、ブラウザのスニッフィングではなく機能検出を使用しますが、前述のように、適切な使用例があります。私はあなたが望んでいたようにこれが質問に答えないことを知っています、しかしうまくいけばそれは何が起こっているのかを説明します。

于 2013-03-07T03:33:18.967 に答える
-2

私が言えることは、クライアントにインストールされている .NET Framework のバージョンを取得するために "機能検出" メソッドを実行することは不可能です。userAgent 文字列が唯一の方法であり、これは壊れています。

于 2015-12-05T01:46:04.307 に答える