首页  ·  知识 ·  云计算
ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息
大豆男生      编辑:dezai   图片来源:网络
ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息
protected void Page_Load(object sender, EventArgs e)
{
// 将客户端的信息添加到 Dictionary 中
Dictionary<string, string> clientInfos = new Dictionary<string, string>();
try
{
string ip = Request.UserHostAddress;
string userAgent = Request.UserAgent == null ? "" : Request.UserAgent;
if(Request.ServerVariables["HTTP_UA_CPU"] == null)
clientInfos.Add(
"CPU 类型", "未知");
else
clientInfos.Add(
"CPU 类型", Request.ServerVariables["HTTP_UA_CPU"]);
clientInfos.Add(
"操作系统", this.GetOSNameByUserAgent(userAgent));
clientInfos.Add(
"IP 地址", ip);
if(Request.Browser.ClrVersion == null)
clientInfos.Add(
".NET CLR 版本", "不支持");
else
clientInfos.Add(
".NET CLR 版本", Request.Browser.ClrVersion.ToString());
clientInfos.Add(
"浏览器", Request.Browser.Browser + Request.Browser.Version);
clientInfos.Add(
"支持 ActiveX", Request.Browser.ActiveXControls ? "支持" : "不支持");
clientInfos.Add(
"支持 Cookies", Request.Browser.Cookies ? "支持" : "不支持");
clientInfos.Add(
"支持 CSS", Request.Browser.SupportsCss ? "支持" : "不支持");
clientInfos.Add(
"语言", Request.UserLanguages[0]);

string httpAccept = Request.ServerVariables["HTTP_ACCEPT"];
if (httpAccept == null)
clientInfos.Add(
"计算机/手机", "未知");
else if (httpAccept.IndexOf("wap") > -1)
clientInfos.Add(
"计算机/手机", "手机");
else
clientInfos.Add(
"计算机/手机", "计算机");
clientInfos.Add(
"Platform", Request.Browser.Platform);
clientInfos.Add(
"Win16", Request.Browser.Win16 ? "" : "不是");
clientInfos.Add(
"Win32", Request.Browser.Win32 ? "" : "不是");

if(Request.ServerVariables["HTTP_ACCEPT_ENCODING"] == null)
clientInfos.Add(
"Http Accept Encoding", "");
else
clientInfos.Add(
"Http Accept Encoding", Request.ServerVariables["HTTP_ACCEPT_ENCODING"]);
clientInfos.Add(
"User Agent", userAgent);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}

// 根据 Dictionary 中的内容在 Table 中显示客户端信息
this.Response.Write("<table cellpadding=0 cellspacing=0>");
this.Response.Write("<tr>");
this.Response.Write("<td width=145>项目</td>");
this.Response.Write("<td>值</td>");
this.Response.Write("</tr>");
foreach (string key in clientInfos.Keys)
{
this.Response.Write("<tr>");
this.Response.Write("<td>" + key + "</font></td>");
this.Response.Write("<td>" + clientInfos[key].ToString() + "</td>");
this.Response.Write("</tr>");
}
this.Response.Write("</table>");
}
 
获取操作系统名称
 
/// <summary>
/// 根据 User Agent 获取操作系统名称
/// </summary>
private string GetOSNameByUserAgent(string userAgent)
{
string osVersion = "未知";

if (userAgent.Contains("NT 6.0"))
{
osVersion
= "Windows Vista/Server 2008";
}
else if (userAgent.Contains("NT 5.2"))
{
osVersion
= "Windows Server 2003";
}
else if (userAgent.Contains("NT 5.1"))
{
osVersion
= "Windows XP";
}
else if (userAgent.Contains("NT 5"))
{
osVersion
= "Windows 2000";
}
else if (userAgent.Contains("NT 4"))
{
osVersion
= "Windows NT4";
}
else if (userAgent.Contains("Me"))
{
osVersion
= "Windows Me";
}
else if (userAgent.Contains("98"))
{
osVersion
= "Windows 98";
}
else if (userAgent.Contains("95"))
{
osVersion
= "Windows 95";
}
else if (userAgent.Contains("Mac"))
{
osVersion
= "Mac";
}
else if (userAgent.Contains("Unix"))
{
osVersion
= "UNIX";
}
else if (userAgent.Contains("Linux"))
{
osVersion
= "Linux";
}
else if (userAgent.Contains("SunOS"))
{
osVersion
= "SunOS";
}
return osVersion;
}
本文作者:大豆男生 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的