ASP获取客户端真实IP地址
日期:2009-05-19 阅读:39 分类:综合信息
简介
Request对象里有个ServerVariables的数据集合,也是本文要用到的,叫服务器环境变量,它能够自动获得客户端的很多信息,由于这个集合的变量比较多,本文只列少许常用的:
ALL_HTTP 客户端发送的所有 HTTP 标题文件。
CONTENT_LENGTH 客户端发出内容的长度。
CONTENT_TYPE 内容的数据类型。如:“text/html”。同附加信息 的查询一起使用,如 HTTP 查询 GET、POST 和 PUT。
LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个IP 地址的多宿主机器上查找请求所使用的地址 时,这条变量非常重要。
LOGON_USER 用户登录 Windows NT 的账号。
QUERY_STRING 查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR 发出请求的远程主机 (client) 的 IP 地址。
REMOTE_HOST 发出请求的主机 (client) 名称。如果服务器无此 信息,它将设置为空的 MOTE_ADDR 变量。
REQUEST_METHOD 该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST等 等。
SERVER_NAME 出现在自引用 URL 中的服务器主机名、DNS 化名 或 IP 地址。
SERVER_PORT 发送请求的端口号。
实现
Function GetClientIp()
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
GetClientIp = Trim(Mid(strIPAddr, 1, 30))
End Function
相关文章
- msxml3.dll错误'800c0005'系统错误: -2146697211 2012-01-04
- [转载] Response.CharSet 2008-06-24
- asp脚本运行超时的解决办法 2008-10-27
- asp库没有注册的解决方案 2008-12-04
- asp和access的一些安全问题 2008-10-30
- 10款最受欢迎的FTP客户端软件 2011-09-11
- Javascript在chrome中辅助预订火车票的方法 2012-01-06
- 一款不错的日历控件 2008-07-31
- getElementsByClassName 2008-07-21
- Javascript常用函数归档 2008-12-01
- JS和VML画曲线图 2008-07-06