下面的代码实现了检测客户端显示器分辨率、浏览器类型和客户端IP的功能。你可以把客户端信息保存到Session,ViewState等中以便在其它的页面直接使用。

例子

ClientPeek.aspx

<%@ Page language="vb" EnableViewState="false" Codebehind="ClientPeek.aspx.vb" AutoEventWireup="false" Inherits="aspxWeb.ClientPeek"%> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>检测客户端显示器分辨率、浏览器类型和客户端IP</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="【孟子E章】:http://xml.sz.luohuedu.net/" name="CopyRight"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </head> <body id="MyBody" MS_POSITIONING="GridLayout" runat="server"> <form id="browserpeek" runat="server"> <asp:label id="Label1" runat="server"></asp:label> </form> </body> </html>

ClientPeek.aspx.vb

Imports System Public Class ClientPeek Inherits System.Web.UI.Page Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents MyBody As System.Web.UI.HtmlControls.HtmlGenericControl #Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 <system.diagnostics.debuggerstepthrough()> Private Sub InitializeComponent() End Sub '注意: 以下占位符声明是 Web 窗体设计器所必需的。 '不要删除或移动它。 Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Dim Button1 As New System.Web.UI.WebControls.Button If Not Me.IsPostBack Then Dim btnW As New System.Web.UI.HtmlControls.HtmlInputHidden Dim btnH As New System.Web.UI.HtmlControls.HtmlInputHidden Button1.ID = "Button1" btnW.Name = "WidthPixel" btnW.ID = "WidthPixel" btnH.Name = "HeightPixel" btnH.ID = "HeightPixel" Me.FindControl("browserpeek").Controls.Add(btnW) Me.FindControl("browserpeek").Controls.Add(btnH) Me.FindControl("browserpeek").Controls.Add(Button1) Dim scriptString As String = "" scriptString += "document.browserpeek.WidthPixel.value=window.screen.width;" scriptString += "document.browserpeek.HeightPixel.value=window.screen.height;" Me.RegisterOnSubmitStatement("Meng", scriptString) Me.MyBody.Attributes.Add("onload", "document.browserpeek.Button1.click();") Else Me.MyBody.Attributes.Remove("onload") If Me.FindControl("browserpeek").Controls.Contains(Button1) Then Me.FindControl("browserpeek").Controls.Remove(Button1) Button1.Dispose() End If Dim strLabel As New System.Text.StringBuilder Dim bc As HttpBrowserCapabilities = Request.Browser strLabel.Append("您的浏览器的分辨率为:") strLabel.Append(Request.Form("WidthPixel")) strLabel.Append("×") strLabel.Append(Request.Form("HeightPixel")) strLabel.Append("<hr color='#000099'>") strLabel.Append("浏览器基本信息:<br>") strLabel.Append("Type = " & bc.Type & "<br>") strLabel.Append("Name = " & bc.Browser & "<br>") strLabel.Append("Version = " & bc.Version & "<br>") strLabel.Append("Major Version = " & bc.MajorVersion & "<br>") strLabel.Append("Minor Version = " & bc.MinorVersion & "<br>") strLabel.Append("Platform = " & bc.Platform & "<br>") strLabel.Append("Is Beta = " & bc.Beta & "<br>") strLabel.Append("Is Crawler = " & bc.Crawler & "<br>") strLabel.Append("Is AOL = " & bc.AOL & "<br>") strLabel.Append("Is Win16 = " & bc.Win16 & "<br>") strLabel.Append("Is Win32 = " & bc.Win32 & "<br>") strLabel.Append("支持 Frames = " & bc.Frames & "<br>") strLabel.Append("支持 Tables = " & bc.Tables & "<br>") strLabel.Append("支持 Cookies = " & bc.Cookies & "<br>") strLabel.Append("支持 VB Script = " & bc.VBScript & "<br>") strLabel.Append("支持 JavaScript = " & bc.JavaScript & "<br>") strLabel.Append("支持 Java Applets = " & bc.JavaApplets & "<br>") strLabel.Append("支持 ActiveX Controls = " & bc.ActiveXControls & "<br>") strLabel.Append("CDF = " & bc.CDF & "<br>") strLabel.Append("W3CDomVersion = " + bc.W3CDomVersion.ToString + "<br>") strLabel.Append("UserAgent = " + Request.UserAgent + "<br>") strLabel.Append("UserLanguages = " + Request.UserLanguages(0).ToString + "<br>") strLabel.Append("<hr color='#000099'>") strLabel.Append("客户端计算机基本配置:<br>") strLabel.Append("UserHostName = " + Request.UserHostName + "<br>") strLabel.Append("UserHostAddress = " + Request.UserHostAddress + "<br>") Label1.Text = strLabel.ToString() End If End Sub End Class

C#代码

ClientPeek.aspx

<%@ Page language="c#" EnableViewState = "false" Codebehind="ClientPeek.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.ClientPeek" %> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>检测客户端显示器分辨率、浏览器类型和客户端IP</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="【孟子E章】:http://xml.sz.luohuedu.net/" name="CopyRight"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <script language=javascript> var PDFPlugin = false; try { pdftest=new ActiveXObject("PDF.PdfCtrl.6"); } catch(e) { PDFPlugin = false } </script> </head> <body id="MyBody" MS_POSITIONING="GridLayout" runat="server"> <form id="browserpeek" runat="server" name="browserpeek"> <asp:label id="Label1" runat="server"></asp:label> </form> </body> </html>

ClientPeek.aspx.cs

using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace eMeng.Exam { /// <summary> /// CheckPeek 的摘要说明。 /// </summary> public class ClientPeek : System.Web.UI.Page { protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.HtmlControls.HtmlGenericControl MyBody; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 System.Web.UI.WebControls.Button Button1 = new System.Web.UI.WebControls.Button(); if(!IsPostBack) { System.Web.UI.HtmlControls.HtmlInputHidden btnW = new System.Web.UI.HtmlControls.HtmlInputHidden(); System.Web.UI.HtmlControls.HtmlInputHidden btnH = new System.Web.UI.HtmlControls.HtmlInputHidden(); System.Web.UI.HtmlControls.HtmlInputHidden btnPDF = new System.Web.UI.HtmlControls.HtmlInputHidden(); Button1.ID = "Button1"; btnW.Name = "WidthPixel"; btnW.ID = "WidthPixel"; btnH.Name = "HeightPixel"; btnH.ID = "HeightPixel"; btnPDF.Name = "PDF"; btnPDF.ID = "PDF"; this.FindControl("browserpeek").Controls.Add(btnW); this.FindControl("browserpeek").Controls.Add(btnH); this.FindControl("browserpeek").Controls.Add(btnPDF); this.FindControl("browserpeek").Controls.Add(Button1); string scriptString = ""; scriptString += "document.all.browserpeek.WidthPixel.value=window.screen.width;\r\n"; scriptString += "document.all.browserpeek.HeightPixel.value=window.screen.height;\r\n"; scriptString += "document.all.browserpeek.PDF.value=PDFPlugin;\r\n"; this.RegisterOnSubmitStatement("Meng", scriptString); this.MyBody.Attributes.Add("onload", "document.all."+Button1.ClientID+".click();"); } else { this.MyBody.Attributes.Remove("onload"); if(this.FindControl("browserpeek").Controls.Contains(Button1)) { this.FindControl("browserpeek").Controls.Remove(Button1); Button1.Dispose(); } System.Text.StringBuilder strLabel = new System.Text.StringBuilder(); HttpBrowserCapabilities bc = Request.Browser; strLabel.Append("您的浏览器的分辨率为:"); strLabel.Append(Request.Form["WidthPixel"]); strLabel.Append("×"); strLabel.Append(Request.Form["HeightPixel"]); strLabel.Append("<hr color='#000099'>"); strLabel.Append("浏览器基本信息:<br>"); strLabel.Append("Type = " + bc.Type + "<br>"); strLabel.Append("Name = " + bc.Browser + "<br>"); strLabel.Append("Version = " + bc.Version +"<br>"); strLabel.Append("Major Version = " + bc.MajorVersion + "<br>"); strLabel.Append("Minor Version = " + bc.MinorVersion + "<br>"); strLabel.Append("Platform = " + bc.Platform + "<br>"); strLabel.Append("Is Beta = " + bc.Beta + "<br>"); strLabel.Append("Is Crawler = " + bc.Crawler + "<br>"); strLabel.Append("Is AOL = " + bc.AOL + "<br>"); strLabel.Append("Is Win16 = " + bc.Win16 + "<br>"); strLabel.Append("Is Win32 = " + bc.Win32 + "<br>"); strLabel.Append("支持 Frames = " + bc.Frames + "<br>"); strLabel.Append("支持 Tables = " + bc.Tables + "<br>"); strLabel.Append("支持 Cookies = " + bc.Cookies + "<br>"); strLabel.Append("支持 VB Script = " + bc.VBScript + "<br>"); strLabel.Append("支持 JavaScript = " + bc.JavaScript + "<br>"); strLabel.Append("支持 Java Applets = " + bc.JavaApplets + "<br>"); strLabel.Append("支持 ActiveX Controls = " + bc.ActiveXControls + "<br>"); strLabel.Append("CDF = " + bc.CDF + "<br>"); strLabel.Append("W3CDomVersion = " + bc.W3CDomVersion.ToString() + "<br>"); strLabel.Append("UserAgent = " + Request.UserAgent + "<br>"); strLabel.Append("UserLanguages = " + Request.UserLanguages[0].ToString() + "<br>"); strLabel.Append("<hr color='#000099'>"); strLabel.Append("客户端计算机基本配置:<br>"); strLabel.Append("UserHostName = " + Request.UserHostName + "<br>"); strLabel.Append("UserHostAddress = " + Request.UserHostAddress + "<br>"); strLabel.Append("PDF 6.0 插件是否安装 = " + Request.Form["PDF"] + "<br>"); Label1.Text = strLabel.ToString(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
posted on 2006-10-09 17:15  绯村剑心  阅读(545)  评论(0编辑  收藏  举报