2010-10-08 12 views
18

Ich muss UserAgent Strings von einer Konsolen-App analysieren, und das scheint eine einfache Möglichkeit zu sein, aber ich habe offensichtlich kein HttpRequest-Objekt und kann anscheinend kein falsches mit einem User-Agent-Header erstellen (Ich bekomme Plattform nicht unterstützt Ausnahme). Gibt es eine Möglichkeit, dies zu tun, oder sollte ich andere Alternativen zu User-Agent-Parsing untersuchen?Ist es möglich, HttpBrowserCapabilities aus einer C# -Konsolenanwendung zu verwenden?

+0

welche Art von Seitenanfrage Sie erfassen möchten ???? speziell von der Konsolen-App? –

+0

Keine Seitenanforderung. Ich habe eine Liste von Benutzeragenten in einer Textdatei und möchte Browser, Version, OS und ein paar andere Dinge analysieren, die alle über Request.Browser verfügbar gewesen wären, aber jetzt versuche ich, sie zu bekommen eine Konsolenanwendung und eine Liste von UserAgent-Zeichenfolgen –

Antwort

26

Der User-Agent Header kann durch die HttpBrowserCapabilities Klasse mit Hilfe eines BrowserCapabilitiesFactory analysiert werden, wie folgt:

var userAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.10) " + 
       "Gecko/20100914 Firefox/3.6.10"; 
var browser = new HttpBrowserCapabilities { 
    Capabilities = new Hashtable {{string.Empty, userAgent}} 
}; 
var factory = new BrowserCapabilitiesFactory(); 
factory.ConfigureBrowserCapabilities(new NameValueCollection(), browser); 
+0

Das funktioniert! Danke! –

+0

Danke das hat mein Problem auch gelöst! –

+0

Ich möchte dies außerhalb einer asp.net-Umgebung (Analyse von Protokolldateien) ausführen. Es scheint den Agententyp und die Version nicht sehr gut zu bestimmen. "Mozilla/5.0 + (Windows + NT + 6.1) + AppleWebKit/537.36 + (KHTML, + wie + Gecko) + Chrome/37.0.2062.120 + Safari/537.36" = Chrome 37, aber "Mozilla/4.0 + (kompatibel; + MSIE + 7.0; + Windows + NT + 6.1; + Trident/4.0; + SLCC2; +. NET + CLR + 2.0.50727; +. NET + CLR + 3.5.30729; +. NET + CLR + 3.0.30729; + Media + Center + PC + 6.0; +. NET4.0C; +. NET4.0E; + InfoPath.3; + SynapseWorkstation.3.2.1; + MS-RTC + LM + 8; + Tablet + PC + 2.0) "= Mozilla. – Jeremy

Verwandte Themen