稍微研究了一下,服务器如何获取用户的信息做了一个整理。
cs代码 通过反射来访问类的实例属性和属性值
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Reflection;
using System.Text.RegularExpressions;namespace Whoru
{public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){System.Web.HttpBrowserCapabilities bCaps;// 请求者的浏览器信息bCaps = Request.Browser;// 获取bCaps对象的类型Type type = bCaps.GetType();object obj = Activator.CreateInstance(type);// 属性信息数组PropertyInfo[] props = type.GetProperties();string str = string.Empty;// 遍历实例的所有属性,及属性值foreach (PropertyInfo pi in props){// 属性名string name = pi.Name;try{str += string.Format("{0}:{1}", pi.Name, pi.GetValue(bCaps, null).ToString());str += "<br>";}catch (Exception ex){//Response.Write("error:"+ex.Message);str += "<br>";}}// 为了加强准确性,防止支持wap的浏览器如opera,加入操作系统验证。openwave|后为pc操作系统// Chrome浏览器有点捣蛋,它的agent信息里会包括Mozilla,Chrome,Safari等信息,所以必要时要做一些特殊的判断string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|X Window|Longhorn|ubuntu|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS/2|OSF1|SUN";string osMob = "Android|iPhone|iPod|iPad|Windows Phone|MQQBrowser";string uAgent = Request.ServerVariables["HTTP_USER_AGENT"];Regex reg = new Regex(osPat);Regex regMob = new Regex(osMob);if (reg.IsMatch(uAgent)){str += "电脑访问";}else if (regMob.IsMatch(uAgent)){str += "手机访问";}else{str += "未知的设备";}str += "<br/>" + uAgent;divContent.InnerHtml = str;}}
}
html代码
把div定义为服务器控件,然后在后台把信息输出。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Whoru._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server"><title></title><script language="javascript"> function setBrowser(){var browser="unknown";var userAgent = navigator.userAgent.toLowerCase();if (userAgent.indexOf("chrome") > -1)browser="Opera";else if (userAgent.indexOf("konqueror") > -1)browser="Konqueror";else if (userAgent.indexOf("firefox") > -1)browser="Firefox";else if (userAgent.indexOf("netscape") > -1)browser="Netscape";else if (userAgent.indexOf("msie") > -1)browser="Internet Explorer";else if (userAgent.indexOf("opera") > -1)browser="Chrome";else if (userAgent.indexOf("safari") > -1)browser="Safari";var brDiv=document.getElementById("browser");brDiv.innerHTML=userAgent+"<b>" + browser + "</b>";}window.οnlοad=setBrowser;</script>
</head>
<body><form id="form1" runat="server">You are using: <div id="browser"></div><div id="divContent" runat="server"></div></form>
</body>
</html>