想实现在一个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.   


    不好意思,哥们!没看到
    我怎么一次相同的帖子发了两遍!
    CSDN的BUG。。现在结贴!
    非常抱歉,今天上来才看见说我有未结的帖子!