您的位置:首页 > 编程语言 > Java开发

Java 获取客户端ip返回127.0.0.1问题

2011-12-14 17:21 531 查看
Java开发中使用 request.getRemoteAddr 获取客户端 ip ,返回结果始终为127.0.0.1。原因是服务器使用了nginx反向代理。

解决办法:在nginx配置文件nginx.conf中添加 proxy_set_header X-Real-IP $remote_addr;

server {

location ^~ /testweb/ {

root html;

access_log on;

index index.jsp;

proxy_set_header X-Real-IP $remote_addr; //添加此项

proxy_pass http://127.0.0.1:88/testweb/;
}

}

java 代码如下:

public static String getRealIpAddr(HttpServletRequest request) {

String ip = request.getHeader("X-Real-IP");

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: