通常这样取一个IP:request.getRemoteAddr(),但有时候取出来的是不对的,特别是在应用前加了Nginx之类的软件,下面的方法可以取出访问的IP地址

public static String getRemoteAddrIp(HttpServletRequest request) {
        String ipFromNginx = getHeader(request, "X-Real-IP");
        //System.out.println("ipFromNginx:" + ipFromNginx);
        //System.out.println("getRemoteAddr:" + request.getRemoteAddr());
        return StringUtils.isEmpty(ipFromNginx) ? request.getRemoteAddr() : ipFromNginx;
    }
    private static String getHeader(HttpServletRequest request, String headName) {
        String value = request.getHeader(headName);
        return !StringUtils.isBlank(value) && !"unknown".equalsIgnoreCase(value) ? value : "";
    }

 

相关文章:

  • 2021-07-23
  • 2022-01-16
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-11-30
  • 2021-11-30
  • 2021-12-05
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2021-11-30
  • 2021-07-17
  • 2022-12-23
  • 2021-10-25
  • 2022-01-16
相关资源
相似解决方案