C# 使用用户代理检测客户端操作系统

C# 使用用户代理检测客户端操作系统,c#,operating-system,user-agent,C#,Operating System,User Agent,我用c语言创建了一个函数,它使用用户代理并返回操作系统及其体系结构。除了Firefox 3.6.28显示32位windows XP而不是64位XP之外,它工作正常 FF 3.6.28返回的用户代理字符串 Mozilla/5.0 Windows;Uwindowsnt5.2;恩美;rv:1.9.2.28 Gecko/20120306 Firefox/3.6.28 GTB7.1.NET CLR 3.5.30729 这是密码 HttpBrowserCapabilities browser = Requ

我用c语言创建了一个函数,它使用用户代理并返回操作系统及其体系结构。除了Firefox 3.6.28显示32位windows XP而不是64位XP之外,它工作正常

FF 3.6.28返回的用户代理字符串

Mozilla/5.0 Windows;Uwindowsnt5.2;恩美;rv:1.9.2.28 Gecko/20120306 Firefox/3.6.28 GTB7.1.NET CLR 3.5.30729

这是密码

HttpBrowserCapabilities browser = Request.Browser;
    string platform = browser.Platform;
    Response.Write(platform +"</br>");

     if (platform.Contains("Win"))
     {
        Response.Write("Your OS : Windows </br>");
        string str = Request.UserAgent;
        if (str.IndexOf("WOW64") != -1 ||   str.IndexOf("Win64") != -1)
        {
            Response.Write("This is a 64 bit OS </br></br>");

        }
        else
        {
            Response.Write("Not a 64 bit OS");
        }
        Response.Write(str + "</br></br>");

     }
     else
     {
         Response.Write("Your OS :Non  Windows </br>");

     }

显然,浏览器发送的u/a字符串中没有标识其主机操作系统位的标记。。。你希望他们的解决方案是什么?我不明白这个问题。字符串不包含任何预期的模式,因此x32是正确的答案?问题是:如果用户代理不发送WOW64,X64或WIN64在用户代理stringyah中,但询问浏览器是否在64位操作系统上运行,并且其未发送任何模式以标识为64位操作系统。您不能从用户代理中获取该模式-最好的选择是jscript:前面的问题可能会有所帮助: