web-dev-qa-db-ja.com

ユーザーエージェント文字列を解釈するための.NETlib

保存されたユーザーエージェント文字列を解釈し、含まれている情報を含む強い型のオブジェクトを提供する.NETライブラリはありますか?

26
Mr. Flibble
        var browserCapabilities = new HttpBrowserCapabilities
        {
            Capabilities = new Hashtable { { string.Empty, userAgent } }
        };

        var capabilitiesFactory = new BrowserCapabilitiesFactory();

        capabilitiesFactory.ConfigureBrowserCapabilities(new NameValueCollection(), browserCapabilities);

        return browserCapabilities;
16
Umar Topia

これを試すことができます a-parser かなり頻繁に更新されるようです!

編集:ua-parserは多かれ少なかれ死んでいるようです、 DeviceDetector.NET は活発に開発されているようです。

12
Peter

ユーザーエージェント文字列が必要な場合は、HttpRequest.Browserプロパティを使用できます。ブラウザのバージョンではなく、ブラウザの機能に対してWebサイトをプログラムしてみてください。

http://msdn.Microsoft.com/en-us/library/system.web.httprequest.browser.aspx

HttpBrowserCapabilities bc = Request.Browser;
Response.Write("<p>Browser Capabilities:</p>");
Response.Write("Type = " + bc.Type + "<br>");
Response.Write("Name = " + bc.Browser + "<br>");
Response.Write("Version = " + bc.Version + "<br>");
Response.Write("Major Version = " + bc.MajorVersion + "<br>");
Response.Write("Minor Version = " + bc.MinorVersion + "<br>");
Response.Write("Platform = " + bc.Platform + "<br>");
Response.Write("Is Beta = " + bc.Beta + "<br>");
Response.Write("Is Crawler = " + bc.Crawler + "<br>");
Response.Write("Is AOL = " + bc.AOL + "<br>");
Response.Write("Is Win16 = " + bc.Win16 + "<br>");
Response.Write("Is Win32 = " + bc.Win32 + "<br>");
Response.Write("Supports Frames = " + bc.Frames + "<br>");
Response.Write("Supports Tables = " + bc.Tables + "<br>");
Response.Write("Supports Cookies = " + bc.Cookies + "<br>");
Response.Write("Supports VB Script = " + bc.VBScript + "<br>");
Response.Write("Supports JavaScript = " + bc.JavaScript + "<br>");
Response.Write("Supports Java Applets = " + bc.JavaApplets + "<br>");
Response.Write("Supports ActiveX Controls = " + bc.ActiveXControls + "<br>");
Response.Write("CDF = " + bc.CDF + "<br>");
5
Stefan