java web开发如何获取客户端访问请求ip

@Slf4j
public class IpUtils {
    private final static String[] IP_SOURCE={"WL-Proxy-Client-IP","X-Real-IP","X-Forwarded-For","Proxy-Client-IP"};


    private IpUtils() {
        throw new IllegalStateException("IpUtils class");
    }


    /**
     * 获取IP
     * @param request
     * @return
     */
    public static String getIp(HttpServletRequest request){
        List<String> list =new ArrayList<>();
        Arrays.asList(IP_SOURCE).forEach(source->{
            if(list.isEmpty()
                    &&StringUtils.isNotEmpty(request.getHeader(source))
                    &&!"unknown".equalsIgnoreCase(request.getHeader(source))){
                log.info("当前获取客户ip信息,source:{},ip:{}",source,request.getHeader(source));
                list.add(request.getHeader(source).split(",")[0]);
            }
        });
        if(list.isEmpty()){
            return request.getRemoteAddr();
        }
        return list.get(0);
    }
}

版权声明:本文为u010353018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。