@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);
}
}
java web开发如何获取客户端访问请求ip
于 2022-04-29 09:16:44 首次发布