Springboot通过HttpServletRequest获取用户真实ip

 Springboot通过HttpServletRequest获取用户真实ip

public String getVisitorIp(HttpServletRequest request){
            // 优先取 X-Real-IP
            String ip = request.getHeader("X-Real-IP");
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
                ip = request.getHeader("x-forwarded-for");
            }
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
                ip = request.getRemoteAddr();
                if ("0:0:0:0:0:0:0:1".equals(ip))
                {
                    ip = "unknown";
                }
            }
            if ("unknown".equalsIgnoreCase(ip)){
                ip = "unknown";
                return ip;
            }
            int index = ip.indexOf(',');
            if (index >= 0){
                ip = ip.substring(0, index);
            }
            return ip;
    }

 

你可能感兴趣的:(springboot,java)