惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tor Project blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
G
Google Developers Blog
J
Java Code Geeks
The Cloudflare Blog
Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
Cisco Talos Blog
Cisco Talos Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
I
Intezer
Jina AI
Jina AI
T
Tenable Blog
P
Palo Alto Networks Blog
Project Zero
Project Zero
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
F
Full Disclosure
Cloudbric
Cloudbric
量子位
H
Heimdal Security Blog
K
Kaspersky official blog
有赞技术团队
有赞技术团队
罗磊的独立博客
V
Vulnerabilities – Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
Recent Announcements
Recent Announcements
WordPress大学
WordPress大学
GbyAI
GbyAI
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
I
InfoQ
Recorded Future
Recorded Future
Security Archives - TechRepublic
Security Archives - TechRepublic
AI
AI
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Exploit Database - CXSecurity.com
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hacker News: Front Page
Latest news
Latest news

博客园 - 绯村剑心

日期对象ToString方法格式符的大小写对输出结果是有影响的 - 绯村剑心 - 博客园 Ajax基础配置 — XMLHttpRequest 让文本输入框只能输入数字 - 绯村剑心 - 博客园 抓取网页中的链接 在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中) 对于长时间装载的ASP.NET页面如何在客户端浏览器中显示进度? 带图片的,多列的DropDownList的实现 - 绯村剑心 - 博客园 一个很不错介绍session的文章 无法从Web服务器获取项目文件 曼彻斯特码与差分曼彻斯特码 如何清除SQL server日志 sql server日志文件总结及日志满的处理办法 SQL SERVER 安装问题详解 Server实用操作小技巧集合 从html中提出纯文本 用JAVASCRIPT来刷新框架子页面的七种方法。 创建高度动态变化的Iframe 上传图片并生成缩略图 ASP.NET程序中常用的三十三种代码
检测客户端显示器分辨率、浏览器类型和客户端IP
绯村剑心 · 2006-10-09 · via 博客园 - 绯村剑心

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