asp.net Request.ServerVariables[] 读解

获取客户端的IP地址,代码如下:

代码如下:

/// <summary>
/// 获取客户端IP地址
/// </summary>
/// <returns></returns>
public string GetClientIP()
{
string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP == null)
userIP = Request.ServerVariables["REMOTE_ADDR"];
return userIP;
}

名词解释: ServerVariables -- 服务器变量

Request.ServerVariables("Url")
返回服务器地址
Request.ServerVariables("Path_Info")
客户端提供的路径信息
Request.ServerVariables("Appl_Physical_Path")
与应用程序元数据库路径相应的物理路径
Request.ServerVariables("Path_Translated")
通过由虚拟至物理的映射后得到的路径
Request.ServerVariables("Script_Name")
执行脚本的名称
Request.ServerVariables("Query_String")
查询字符串內容
Request.ServerVariables("Http_Referer")
请求的字符串內容
Request.ServerVariables("Server_Port")
接受请求的服务器端口号
Request.ServerVariables("Remote_Addr")
发出请求的远程主机的IP地址
Request.ServerVariables("Remote_Host")
发出请求的远程主机名称
Request.ServerVariables("Local_Addr")
返回接受请求的服务器地址
Request.ServerVariables("Http_Host")
返回服务器地址
Request.ServerVariables("Server_Name")
服务器的主机名、DNS地址或IP地址
Request.ServerVariables("Request_Method")
提出请求的方法比如GET、HEAD、POST等等
Request.ServerVariables("Server_Port_Secure")
如果接受请求的服务器端口为安全端口时,则为1,否则为0
Request.ServerVariables("Server_Protocol")
服务器使用的协议的名称和版本
Request.ServerVariables("Server_Software")
应答请求并运行网关的服务器软件的名称和版本
Request.ServerVariables("All_Http")
客户端发送的所有HTTP标头,前缀HTTP_
Request.ServerVariables("All_Raw")
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_
Request.ServerVariables("Appl_MD_Path")
应用程序的元数据库路径
Request.ServerVariables("Content_Length")
客户端发出內容的长度
Request.ServerVariables("Https")
如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF
Request.ServerVariables("Instance_ID")
IIS实例的ID号
Request.ServerVariables("Instance_Meta_Path")
响应请求的IIS实例的元数据库路径
Request.ServerVariables("Http_Accept_Encoding")
返回內容如:gzip,deflate
Request.ServerVariables("Http_Accept_Language")
返回內容如:en-us
Request.ServerVariables("Http_Connection")
返回內容:Keep-Alive
Request.ServerVariables("Http_Cookie")
返回內容如:nVisiT%
2DYum=125;ASPSESSIONIDCARTQTRA=FDOBFFABJGOECBBKHKGPFIJI;ASPSESSIONIDCAQQTSRB=LKJJPLABABILLPCOGJGAMKAM;ASPSESSIONIDACRRSSRA=DK
HHHFBBJOJCCONPPHLKGHPB
Request.ServerVariables("Http_User_Agent")
返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)
Request.ServerVariables("Https_Keysize")
安全套接字层连接关键字的位数,如128
Request.ServerVariables("Https_Secretkeysize")
服务器验证私人关键字的位数如1024
Request.ServerVariables("Https_Server_Issuer")
服务器证书的发行者字段
Request.ServerVariables("Https_Server_Subject")
服务器证书的主题字段
Request.ServerVariables("Auth_Password")
当使用基本验证模式时,客户在密码对话框中输入的密码
Request.ServerVariables("Auth_Type")
是用户访问受保护的脚本时,服务器用於检验用户的验证方法
Request.ServerVariables("Auth_User")
代证的用户名
Request.ServerVariables("Cert_Cookie")
唯一的客户证书ID号
Request.ServerVariables("Cert_Flag")
客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1
Request.ServerVariables("Cert_Issuer")
用户证书中的发行者字段
Request.ServerVariables("Cert_Keysize")
安全套接字层连接关键字的位数,如128
Request.ServerVariables("Cert_Secretkeysize")
服务器验证私人关键字的位数如1024
Request.ServerVariables("Cert_Serialnumber")
客户证书的序列号字段
Request.ServerVariables("Cert_Server_Issuer")
服务器证书的发行者字段
Request.ServerVariables("Cert_Server_Subject")
服务器证书的主题字段
Request.ServerVariables("Cert_Subject")
客户端证书的主题字段
Request.ServerVariables("Content_Type")
客户发送的form內容或HTTPPUT的数据类型
Request.ServerVariables("HTTP_X_FORWARDED_FOR")
可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持
一些被隐藏起来的Request.ServerVariables参数:
Request.ServerVariables("NUMBER_OF_PROCESSORS")
Request.ServerVariables("OS")
Request.ServerVariables("WINDIR")
Request.ServerVariables("TEMP")
Request.ServerVariables("TMP")
Request.ServerVariables("ComSpec")
Request.ServerVariables("Os2LibPath")
Request.ServerVariables("Path")
Request.ServerVariables("PATHEXT")
Request.ServerVariables("PROCESSOR_ARCHITECTURE")
Request.ServerVariables("PROCESSOR_IDENTIFIER")
Request.ServerVariables("PROCESSOR_LEVEL")
Request.ServerVariables("PROCESSOR_REVISION")
本机ip:<%=request.servervariables("remote_addr")%>
服务器名:<%=Request.ServerVariables("SERVER_NAME")%>
服务器IP:<%=Request.ServerVariables("LOCAL_ADDR")%>
服务器端口:<%=Request.ServerVariables("SERVER_PORT")%>
服务器时间:<%=now%>
IIS版本:<%=Request.ServerVariables("SERVER_SOFTWARE")%>
脚本超时时间:<%=Server.ScriptTimeout%>
本文件路径:<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
服务器CPU数量:<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
服务器解译引擎:<%=ScriptEngine & "/"& ScriptEngineMajorVersion&"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %>
服务器操作系统:<%=Request.ServerVariables("OS")%>
支持的文件类型:<%=Request.ServerVariables("HTTP_Accept")%>
访问的文件路径:<%=Request.ServerVariables("HTTP_url")%>
用户代理的信息:<%=Request.ServerVariables("HTTP_USER_AGENT")%>

(0)

相关推荐

  • 使用c++11打造好用的variant方法

    boost中的variant的基本用法: 复制代码 代码如下: typedef variant<int,char, double> vt;vt v = 1;v = '2';v = 12.32; 用variant一个好处是可以擦除类型,不同类型的值都统一成一个variant,虽然这个variant只能存放已定义的类型,但这在很多时候已经够用了. 取值的时候,通过get<T>(v)来获取真实值.然而,当T类型与v的类型不匹配时,会抛出一个bad_cast的异常来.boost的varia

  • you *might* want to use the less safe log_bin_trust_function_creators variable

    恢复MySQL数据库创建存储过程是遇到错误 you *might* want to use the less safe log_bin_trust_function_creators variable 需要执行 SET GLOBAL log_bin_trust_function_creators = 1;

  • MariaDB(Mysql分支)my.cnf配置文件中文注释版

    复制代码 代码如下: # /usr/share/mysql/my-huge.cnf # MariaDB 配置文件 示例模板(huge,巨型).## 本文件适用于专用数据库服务器, 内存为 1G-2G# 机器上主要只运行 MariaDB的大型系统 ,## MariaDB 程序会根据运行的操作系统平台查找一系列的配置文件,# 你可以将此模板配置文件拷贝到对应的位置(并重命名),# 要查看有哪些配置文件会被读取到,执行:# 'my_print_defaults --help' 并查看# Default

  • 浅谈MySQL和mariadb区别

    MariaDB是MySQL源代码的一个分支,在意识到Oracle会对MySQL许可做什么后分离了出来(MySQL先后被Sun.Oracle收购).除了作为一个Mysql的"向下替代品",MariaDB包括的一些新特性使它优于MySQL. 这两个数据库究竟有什么本质的区别,我看mariadb文件夹BIN中还是mysql*.exe,除了MySQL会被ORACLE闭源外,而mariadb则开源,他俩之间到底还有什么本质区别没有? 区别一: MariaDB不仅仅是Mysql的一个替代品,它的主

  • php Undefined index和Undefined variable的解决方法

    $act=$_POST['act']; 用以上代码总是提示 Notice: Undefined index: act in F:\windsflybook\post.php on line 18 另外,有时还会出现 引用内容 Notice: Undefined variable: Submit ...... 等一些这样的提示 原因:由于变量未定义引起的 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting

  • ServerVariables集合检索预定的环境变量

    服务器环境变量 说明 Request.ServerVariables   ALL_HTTP 客户端发送的所有 HTTP 标题文件. ALL_RAW 检索未处理表格中所有的标题.ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的.使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现. APPL_MD_PATH 检索 ISAPI DLL 的 (WAM) Application 的元数据库路径. APPL_PHY

  • PHP提示Notice: Undefined variable的解决办法

    PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable 这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题. 需要设置显示错误级别,来解决问题. 网络上的通用解决办法是修改php.ini的配置: 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE 2) regis

  • 详解Bootstrap的aria-label和aria-labelledby应用

    aria-label 正常情况下,form表单的input组件都有对应的label.当input组件获取到焦点时,屏幕阅读器会读出相应的label里的文本. 如: <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title>demo</title> <link href="bootstrap-3.3.4-dist/css/bootstr

  • asp.net Request.ServerVariables[] 读解

    获取客户端的IP地址,代码如下: 复制代码 代码如下: /// <summary> /// 获取客户端IP地址 /// </summary> /// <returns></returns> public string GetClientIP() { string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null) userIP = Re

  • asp中Request.ServerVariables的参数集合

    asp(vb)获取计算机名: <%set oWSH = Server.CreateObject("WScript.Network")%> <%=oWSH.ComputerName%> 判断Cookie是否可用(禁止) asp(vb): <%Set objBC=Server.CreateObject("MSWC.BrowserType")%> <%= objBC.Cookies%> 也可以在前一页面中写入cookie 在

  • ASP读取Request.QueryString编码的函数代码

    1. 支持参数纯汉字 ?a=深山老熊 2. 支持参数gb2312 Urlencode编码: ?a=%C9%EE%C9%BD%C0%CF%D0%DC 3. 支持参数UTF-8 Urlencode编码: ?a=%E6%B7%B1%E5%B1%B1%E8%80%81%E7%86%8A 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Option Explicit Const YXCMS_CH

  • ASP中Request对象获取客户端数据的顺序(容易忽略)

    在ASP中Request对象是获取客户端提交数据的一个很重要的对象,大家对他也是非常熟悉了.虽然如此,还是经常有人问我下面的几种写法有什么不同,到底应该怎么写? strMessage = Request("msg") strMessage = Request.Form("msg") 而且,我也看过好多人写的代码,一律都是Request("")的写法,当然这样的写法并没有什么错. 只是大家应该注意 Request对象有几个集合来获取客户端提交的数据

  • JSP request.setAttribute()详解及实例

     javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]="2"; request.setAttribute("test",test) ; response.sendRedirect("jsp2.jsp"); JSP2代码 String te

  • ASP 中 DateDiff 函数详解 主要实现两日期加减操作

    ASP 中 DateDiff 函数详解DateDiff 函数 描述  返回两个日期之间的时间间隔.  语法  DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])  DateDiff 函数的语法有以下参数: 参数 描述  interval 必选.字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔.有关数值,请参阅"设置"部分.  date1, date2 必选.日期表达式.用于计

  • JavaScrip如何安全使用Payment Request API详解

    目录 引言 Payment Request API浏览器支持 如何创建PaymentRequest对象 How to use the paymentMethods parameter How to use the paymentDetails object 如何使用options参数请求更多详细信息 如何显示付款用户界面 如何取消付款请求 结论 引言 Payment Request API提供了一个跨浏览器标准,允许您从客户那里收集付款.地址和联系信息.然后,您可以使用这些信息来处理他们的订单.

  • asp下request.querystring("id")与request("id")区别

    Request从几个集合取数据是有顺序的,从前到后的顺序依次是 QueryString,Form,最后是ServerVariables.Request对象按照这样的顺序依次搜索这几个集合中的变量,如果有符合的就中止,后面的就不管了. 现在我们来分析下你得问题.  假设有个页面 test.asp?id=111  这里我们的页面是用GET的方法.这时用request.querystring("id")与request("id")是一样得,应该如果不指定REQUEST得集

  • 浅谈ASP.NET Core 中间件详解及项目实战

    前言 本篇文章是我们在开发自己的项目中实际使用的,比较贴合实际应用,算是对中间件的一个深入使用了,不是简单的Hello World. 中间件(Middleware)的作用 我们知道,任何的一个web框架都是把http请求封装成一个管道,每一次的请求都是经过管道的一系列操作,最终到达我们写的代码中.那么中间件就是在应用程序管道中的一个组件,用来拦截请求过程进行一些其他处理和响应.中间件可以有很多个,每一个中间件都可以对管道中的请求进行拦截,它可以决定是否将请求转移给下一个中间件. asp.net

  • ASP.NET Session使用详解

    Session模型简介 Session是什么呢?简单来说就是服务器给客户端的一个编号.当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站.当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份.这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验中见到它的实际样子. 这个唯一的SessionID是有很大的实际意义的.当一个用

随机推荐