【发布时间】:2013-10-11 23:25:54
【问题描述】:
我想检测使用 ASP.NET 和 C# 的客户端操作系统。 HttpBrowserCapabilities 类让我可以很好地确定浏览器信息,例如“Chrome”和“29.0”版本。但是,它对我的操作系统没有足够的帮助。 “平台”属性只返回“WinNT”。好吧,我使用的是 Windows 7,显然不是旧的“WinNT”,所以在实用层面上,这对我没有帮助。
现在,我知道我可以手动解析出 UserAgent 字符串的位,并查找诸如“Windows NT 6.1”之类的内容,然后手动将其转换为“Windows 7”。我对 5 个甚至 10 个版本的 Windows 都没有问题。但是,我绝对不想为地球上每个操作系统的所有这些转换编写手动代码。
有谁知道如何在不手写数百或数千行用户代理解析的情况下从我的 Web 代码中检测客户端操作系统?我看到其他网站在其网页上显示“您正在使用 Windows 7”。我不想为此购买第 3 方对象。
【问题讨论】:
-
@MikeBrind 这两个链接都建议使用 UserAgent,OP 表示他已经知道了。他不想手动检查每种类型。
-
我希望这些信息对您来说不是很重要。用户代理字符串可以伪造。