日期:2014-05-17  浏览次数:20695 次

急。。高悬赏,获取客户端IP 地址 问题
我在 登录成功后 要保存 访问者的IP地址。
在自己电脑上运行,公司内网电脑访问,获取的IP是电脑上设置的IP地址(好像正常)。
把工程放到服务器上面,不管是谁访问获取的都是公司外网网关的IP。
不知道是什么问题,在网上查的都是这方法。请高手指教。。。

获取IP 的代码是这样的:
Java code

    private String getIpAddress(HttpServletRequest request) {      
        String ip = request.getHeader("x-forwarded-for");     
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      
            ip = request.getHeader("Proxy-Client-IP");      
        }
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {    
            ip = request.getHeader("WL-Proxy-Client-IP");     
        }      
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {      
            ip = request.getRemoteAddr();    
        }      
        return ip;   
    } 





------解决方案--------------------
你可以把request中的头信息遍历log出来看看有没有你要的信息,
如果没有,那么代码怎么写都没有办法解决,只能在网关上想一下办法了

------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
学习了,顶……
------解决方案--------------------
你去网络部门查看防火墙log文件 应该可以看到差别
------解决方案--------------------

------解决方案--------------------
路由器有防火墙限制的时候也是拿不到IP的.
------解决方案--------------------
不知道你获取IP地址是做什么用的,如果是做投票这种限制一台电脑只能投一次的话,可以考虑获取mac地址的