首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何才能从Request.UserAgent获得操作系统?

如何才能从Request.UserAgent获得操作系统?
EN

Stack Overflow用户
提问于 2013-10-31 18:37:33
回答 1查看 8.1K关注 0票数 1

好的,我正在开发一个ASP.Net网站(C#代码后面),出于故障排除的原因(大多数要求技术支持的客户端不知道他们使用的是什么OS/Browser/BrowserVersion ),所以我们想记录一个“系统配置文件”,这样我们就可以更容易地解决与OS/浏览器相关的问题了。

目前,我正在使用Request.UserAgent。这样做的问题是,它返回了一个对我们的支持人员没有帮助的字符串:

Mozilla/5.0 (WindowsNT6.1;rv:24.0) Gecko/20100101 Firefox/24.0

我想要做的是只提取操作系统(Windows NT 6.1,或用户拥有的任何操作系统),而不需要其他浏览器信息,因为我已经将其他系统信息隔离如下:

UserID,UserOS,BrowserType,BrowserName,MajorVersion,MajorVersion,IsBeta,IsBeta ***

光靠自己就能得到操作系统吗?

如果您知道如何从客户端计算机(即Windows 7 vs Windows 6.1)获取操作系统友好名称,这将使我不必创建一个单独的OS编号数据库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-31 22:36:37

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

代码语言:javascript
复制
        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];
        }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19714185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档