我知道这个问题提出的次数太多了,但我的问题不同了。 我想检测可以在世界任何地方的客户端的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);
答案 0 :(得分:-1)
尝试使用这段代码来获取ipAdd,不确定但可能对你有用!!!
String ipAddress = request.getHeader("True-Client-IP");
if(ipAddress == null || ipAddress.trim().length() == 0)
{
ipAddress = request.getRemoteAddr();
}