Request.ServerVariables集合

ALL_HTTP客户端发送的所有HTTP标题文件。
ALL_RAW检索未处理表格中所有的标题。
APPL_MD_PATH检索ISAPIDLL的(WAM)Application的元数据库路径。
APPL_PHYSICAL_PATH检索与元数据库路径相应的物理路径。IIS通过将APPL_MD_PATH转换为物理(目录)路径以返回值。
AUTH_PASSWORD该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。
AUTH_TYPE这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER未被鉴定的用户名。
CERT_COOKIE客户端验证的唯一ID,以字符串方式返回。可作为整个客户端验证的签字。
CERT_FLAGS如有客户端验证,则bit0为1。如果客户端验证的验证人无效(不在服务器承认的CA列表中),bit1被设置为1.

CERT_ISSUER用户验证中的颁布者字段(O=MS,OU=IAS,CN=username,C=USA)。
CERT_KEYSIZE安全套接字层连接关键字的位数,如128。
CERT_SECRETKEYSIZE服务器验证私人关键字的位数。如1024。
CERT_SERIALNUMBER用户验证的序列号字段。
CERT_SERVER_ISSUER服务器验证的颁发者字段。
CERT_SERVER_SUBJECT服务器验证的主字段。
CERT_SUBJECT客户端验证的主字段。
CONTENT_LENGTH客户端发出内容的长度。
CONTENT_TYPE内容的数据类型。同附加信息的查询一起使用,如:HTTP查询GET、POST和PUT。
GATEWAY_INTERFACE服务器使用的CGI规格的修订。格式为CGI/revision。
LOGON_USER用户登录WindowsNT®的帐号。
PATH_INFO客户端提供的额外路径信息。可以使用这些虚拟路径和PATH_INFO服务器变量访问脚本。如果该信息来自URL,在到达CGI脚本前就已经由服务器解码了。
PATH_TRANSLATEDPATH_INFO转换后的版本,该变量获取路径并进行必要的由虚拟至物理的映射。
QUERY_STRING查询HTTP请求中问号(?)后的信息。
REMOTE_ADDR发出请求的远程主机的IP地址。
REMOTE_HOST发出请求的主机名称。如果服务器无此信息,它将设置为空的MOTE_ADDR变量。
REMOTE_USER用户发送的未映射的用户名字符串。该名称是用户实际发送的名称,与服务器上验证过滤器修改过后的名称相对。
REQUEST_METHOD该方法用于提出请求。相当于用于HTTP的GET/HEAD/POST等等。
SCRIPT_NAME执行脚本的虚拟路径。用于自引用的URL。
SERVER_NAME出现在自引用UAL中的服务器主机名、DNS化名或IP地址。
SERVER_PORT发送请求的端口号。
SERVER_PORT_SECURE包含0或1的字符串。如果安全端口处理了请求,则为1,否则为0。
SERVER_PROTOCOL请求信息协议的名称和修订。格式为protocol/revision。
SERVER_SOFTWARE应答请求并运行网关的服务器软件的名称和版本。格式为name/version。

被发现隐起的
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")

Request.ServerVariables("HTTP_X_FORWARDED_FOR") 是可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持


在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP。还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......

即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。

'通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
Private Function getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值