查找ip地址的代码总是返回null

时间:2014-07-04 06:20:40

标签: java servlets

我知道这个问题提出的次数太多了,但我的问题不同了。 我想检测可以在世界任何地方的客户端的IP地址。我用Google搜索并找到了一些方法,但它无法正常工作。

当我问我们的网络管理员时,他告诉我我们的代理服务器有ip 192.xxx.xxx.xxx,对于我们公司网络的外部,ip是180.xxx.xxx.xxx,它绑定到我们的代理服务器的IP地址[192.xxx.xxx.xxx]

这是我尝试过的代码。此代码驻留在servlet中。 所有都返回null。 提前谢谢......

String ipAddress;
ipAddress = request.getHeader("X-FORWARDED-FOR");

System.out.println(ipAddress);
       if (ipAddress == null) {  
           ipAddress = request.getRemoteAddr();
           System.out.println(ipAddress);
       }

       ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR");
       System.out.println(ipAddress);
        ipAddress = request.getHeader("X-Forwarded-For");
        System.out.println(ipAddress);
        ipAddress = request.getHeader("Proxy-Client-IP");
        System.out.println(ipAddress);
        ipAddress = request.getHeader("WL-Proxy-Client-IP");
        System.out.println(ipAddress);
        ipAddress = request.getHeader("HTTP_CLIENT_IP");
        System.out.println(ipAddress);
        ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR");
        System.out.println(ipAddress);

1 个答案:

答案 0 :(得分:-1)

尝试使用这段代码来获取ipAdd,不确定但可能对你有用!!!

String ipAddress = request.getHeader("True-Client-IP");

if(ipAddress == null || ipAddress.trim().length() == 0)
{
    ipAddress = request.getRemoteAddr();

}