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

  <%

  '******************************

  '函数:GetUserTrueIP()

  '参数:无

  '作者:阿里西西

  '日期:2007/7/13

  '描述:取得用户真实IP,对代理地址仍然有效;返回值:文本类型的IP地址

  '示例:<%=GetUserTrueIP()%>

  '******************************

  Function GetUserTrueIP()

  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

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

  End Function

  %>