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")
......
That is: If the client through the proxy server, then take the value of http_x_forwarded_for, if not through the 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