ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息(图)

先看看效果图

ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息(图)

代码如下:

protectedvoidPage_Load(objectsender,EventArgse)
{
//将客户端的信息添加到Dictionary中
Dictionary<string,string>clientInfos=newDictionary<string,string>();
try
{
stringip=Request.UserHostAddress;
stringuserAgent=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(
".NETCLR版本","不支持");
else
clientInfos.Add(
".NETCLR版本",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]);

stringhttpAccept=Request.ServerVariables["HTTP_ACCEPT"];
if(httpAccept==null)
clientInfos.Add(
"计算机/手机","未知");
elseif(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(
"HttpAcceptEncoding","");
else
clientInfos.Add(
"HttpAcceptEncoding",Request.ServerVariables["HTTP_ACCEPT_ENCODING"]);
clientInfos.Add(
"UserAgent",userAgent);
}
catch(Exceptionex)
{
Response.Write(ex.Message);
}

//根据Dictionary中的内容在Table中显示客户端信息
this.Response.Write("<tablecellpadding=0cellspacing=0>");
this.Response.Write("<tr>");
this.Response.Write("<tdwidth=145>项目</td>");
this.Response.Write("<td>值</td>");
this.Response.Write("</tr>");
foreach(stringkeyinclientInfos.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>");
}

这是是获取操作系统名称的代码:

ASP.NET获取客户端的操作系统、浏览器、.NET版本等信息(图)
///<summary>
///根据UserAgent获取操作系统名称
///</summary>
privatestringGetOSNameByUserAgent(stringuserAgent)
{
stringosVersion="未知";

if(userAgent.Contains("NT6.0"))
{
osVersion
="WindowsVista/Server2008";
}
elseif(userAgent.Contains("NT5.2"))
{
osVersion
="WindowsServer2003";
}
elseif(userAgent.Contains("NT5.1"))
{
osVersion
="WindowsXP";
}
elseif(userAgent.Contains("NT5"))
{
osVersion
="Windows2000";
}
elseif(userAgent.Contains("NT4"))
{
osVersion
="WindowsNT4";
}
elseif(userAgent.Contains("Me"))
{
osVersion
="WindowsMe";
}
elseif(userAgent.Contains("98"))
{
osVersion
="Windows98";
}
elseif(userAgent.Contains("95"))
{
osVersion
="Windows95";
}
elseif(userAgent.Contains("Mac"))
{
osVersion
="Mac";
}
elseif(userAgent.Contains("Unix"))
{
osVersion
="UNIX";
}
elseif(userAgent.Contains("Linux"))
{
osVersion
="Linux";
}
elseif(userAgent.Contains("SunOS"))
{
osVersion
="SunOS";
}
returnosVersion;
}