下面的代码实现了检测客户端显示器分辨率、浏览器类型和客户端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
}
}
