ASP获取客户端真实IP地址

简介

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



上一篇: 多选对话框效果(限制选定数量)
下一篇: U盘当内存 eBoostr为XP系统提速!
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ASP 获取客户端真实IP
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭