想实现在一个ASP论坛上用户每次发帖,IP都能获取到存入数据库。于是用了 如下语句来实现 urip=Request.ServerVariables("HTTP_X_FORWORDED_FOR")
IF urip="" then
    urip=Request.ServerVariables("REMOTE_ADDR")
END IF    在测试环境下是正常的,IP可以获取,甚至是代理的。但是把它部署到正式环境后,发现用户IP都获得为192.168.1.254。 
    正式环境的服务器与外网连接的中间有个反向代理服务器。所以搞得每次IP都是 192.168.1.254,不知道大虾们能不能帮忙解决下。不胜感激!
    JS 或者是ASP

解决方案 »

  1.   

    <%Private Function getIP() 
    Dim strIPAddr 
    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariab
    les("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.Ser
    verVariables("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.Ser
    verVariables("HTTP_X_FORWARDED_FOR"), ";")-1) 
    Else 
    strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
    End If 
    getIP = Trim(Mid(strIPAddr, 1, 30)) 
    End Function
    ip=getIP()
    response.write(ip)
    %>试试这个呢
      

  2.   

    非常感谢sy_binbin
    在你的帮助下,已经解决了问题。
    20分虽有点少,海涵。