该工具类通过request请求,获取用户的IP地址
public class ClientIp {
public static String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
if (ip != null) {
if (!ip.isEmpty() && !Constant.UNKNOWN.equalsIgnoreCase(ip)) {
int index = ip.indexOf(",");
if (index != -1) {
return ip.substring(0, index);
} else {
return ip;
}
}
}
ip = request.getHeader("X-Real-IP");
if (ip != null) {
if (!ip.isEmpty() && !Constant.UNKNOWN.equalsIgnoreCase(ip)) {
return ip;
}
}
ip = request.getHeader("Proxy-Client-IP");
if (ip != null) {
if (!ip.isEmpty() && !Constant.UNKNOWN.equalsIgnoreCase(ip)) {
return ip;
}
}
ip = request.getHeader("WL-Proxy-Client-IP");
if (ip != null) {
if (!ip.isEmpty() && !Constant.UNKNOWN.equalsIgnoreCase(ip)) {
return ip;
}
}
ip = request.getRemoteAddr();
return Constant.ERROR_IP.equals(ip) ? Constant.LOCAL_IP : ip;
}
}