@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");
}
public static String getIp(HttpServletRequest request){
List 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);
}
}