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

本页链接: http://www.scriptlover.com/static/558-asp-客户端-ip

标签:

相关文章

网友评论

Leave a comment

 required

 required (Not published)

 required