1

好的,所以我正在开发一个 ASP.Net 网站(背后的 C# 代码),出于故障排除的原因(我们大多数需要技术支持的客户不知道他们使用的是什么操作系统/浏览器/浏览器版本),我们想要可以这么说,记录“系统配置文件”,以便我们更轻松地解决与操作系统/浏览器相关的问题。

目前,我正在使用Request.UserAgent. 问题在于它返回的字符串对我们的支持人员没有帮助:

Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0

我想要做的是仅拉取操作系统(Windows NT 6.1,或用户拥有的任何操作系统),而不需要额外的浏览器信息,因为我已经将其他系统信息分开了:

| 用户名 | 用户操作系统 | 浏览器类型 | 浏览器名称 | 主要版本 | 次要版本 | 贝塔 |

| 11111 | 用户操作系统* | * 火狐24.0 * | * * 火狐* * |* * * * * 24 * * * * |* * * * 0 * * * * | * * 0 * * |

是否可以单独获取操作系统?

如果您知道如何从客户端计算机(即 Windows 7 与 Windows NT 6.1)获取 OS 友好名称,则可以加分,这将使我不必创建单独的 OS 编号数据库。

4

1 回答 1

4

用户代理不会给你一个友好的名字,所以你需要维护一个列表,这样的东西应该可以工作......

        Dictionary<string, string> osList = new Dictionary<string, string>
        {
            {"Windows NT 6.3", "Windows 8.1"},
            {"Windows NT 6.2", "Windows 8"},
            {"Windows NT 6.1", "Windows 7"},
            {"Windows NT 6.0", "Windows Vista"},
            {"Windows NT 5.2", "Windows Server 2003"},
            {"Windows NT 5.1", "Windows XP"},
            {"Windows NT 5.0", "Windows 2000"}
        };

        string userAgentText = HttpContext.Current.Request.UserAgent;

        if (userAgentText != null)
        {
            int startPoint = userAgentText.IndexOf('(') + 1;
            int endPoint = userAgentText.IndexOf(';');

            string osVersion = userAgentText.Substring(startPoint, (endPoint - startPoint));
            string friendlyOsName = osList[osVersion];
        }
于 2013-10-31T22:36:37.100 回答