IP Address | The client uses request.servervariables ("REMOTE_ADDR") in the ASP to obtain the IP address of the client, but if the client is using a proxy server to access it, the IP address of the proxy server is taken. Instead of the real client IP address. To obtain a client's real IP address through a proxy server, use Request.ServerVariables ("Http_x_forwarded_for") to read it. However, it should be noted that not every proxy server can use Request.ServerVariables ("Http_x_forwarded_for") to read the real IP client, and some use this method to read the IP is still the proxy server. It is also important to note that if the client is not accessed through a proxy server, the value taken with Request.ServerVariables ("Http_x_forwarded_for") will be empty. Therefore, if you want to use this method in your program, you can handle this:
......
Userip = Request.ServerVariables ("http_x_forwarded_for")
If Userip = "" Then Userip = Request.ServerVariables ("remote_addr")
......
namely: If the client through proxy server, then take http_x_forwarded_for value, if not through proxy server, take REMOTE_ADDR value.
' common function: If you can not take the client real IP, will take the client's proxy IP
Private Function getip ()
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
GetIP = Trim (Mid (stripaddr, 1, 30))
End Function