我们知道,在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))