java后端获取访问真实ip地址

public String getIp(HttpServletRequest request) {
  String ip = request.getHeader("X-Forwarded-For");
  if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
    //多次反向代理后会有多个ip值,第一个ip才是真实ip
    int index = ip.indexOf(",");
    if(index != -1){
      return ip.substring(0,index);
    }
    else{
      return ip;
    }
  }
  ip = request.getHeader("X-Real-IP");
  if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
    return ip;
  }
  return request.getRemoteAddr();
}

posted @ 2021-11-04 09:36  智恒  阅读(1609)  评论(0)    收藏  举报