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

java获取客户端真实ip地址

2019-01-16 15:31 120 查看

java获取客户端真实ip地址

  1. 后端程序代码
public static String getIpAddr(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;
}

如果使用了nginx反向代理需要配置proxy_set_header,使用默认的配置会导致获取的ip变成了服务器端的ip

location  /###{
proxy_pass  ip/###;
proxy_set_header    Host             $host;
proxy_set_header    X-Real-IP        $remote_addr;
proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;
proxy_redirect      default;

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