asp 取得用户真实IP,对代理地址仍然有效的函数

时间:2022-02-28 00:29:46
  1. <%  
  2. '******************************  
  3. '函数:GetUserTrueIP()  
  4. '参数:无  
  5. '作者:阿里西西  
  6. '日期:2007/7/13  
  7. '描述:取得用户真实IP,对代理地址仍然有效;返回值:文本类型的IP地址  
  8. '示例:<%=GetUserTrueIP()%>  
  9. '******************************  
  10. Function GetUserTrueIP()  
  11.    dim strIPAddr  
  12.    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then   
  13.       strIPAddr = Request.ServerVariables("REMOTE_ADDR")   
  14.    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then   
  15.       strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)   
  16.    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then   
  17.       strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)   
  18.    Else   
  19.       strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")   
  20.    End If   
  21.    GetUserTrueIP = Trim(Mid(strIPAddr, 1, 30))   
  22. End Function  
  23. %>