我们知道,在ASP中,可以通过Request.ServerVariables("REMOTE_ADDR")来获取客户端的IP地址。但是,这个IP地址并不一定就是真实的客户端IP地址。

那么怎么判断获取的IP是否是真实的IP地址呢?而真实的客户端IP地址又应该怎么样获取呢?洪哥把获取客户端真实IP地址的功能封装成了一个函数,方便大家调用。

'--------------------------

'

'函数:GetClientIp()

'用途:获取客户端IP地址

'输入:无

'输出:客户端IP地址

'

'--------------------------

Function GetClientIp()

    Dim hAddr, hForward, strIPAddr

    hAddr = Request.ServerVariables("REMOTE_ADDR")

    hForward = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

    If hForward = "" Or InStr(hForward, "unknown") > 0 Then

        strIPAddr = hAddr

    ElseIf InStr(hForward, ",") > 0 Then

        strIPAddr = Mid(hForward, 1, InStr(hForward, ",") - 1)

    ElseIf InStr(hForward, ";") > 0 Then

        strIPAddr = Mid(hForward, 1, InStr(hForward, ";") - 1)

    Else

        strIPAddr = hForward

    End If

    GetClientIp = Trim(Mid(strIPAddr, 1, 30))

03-14 12:05