public static String getIpAddr(HttpServletRequest request) {
String IP = request.getHeader("x-forwarded-for");
if(IP == null || IP.length() == 0 || "unknown".equalsIgnoreCase(IP)) {
IP = request.getHeader("Proxy-Client-IP");
}
if(IP == null || IP.length() == 0 || "unknown".equalsIgnoreCase(IP)) {
IP = request.getHeader("WL-Proxy-Client-IP");
}
if(IP == null || IP.length() == 0 || "unknown".equalsIgnoreCase(IP)) {
IP = request.getRemoteAddr();
}
if (IP != null) {
if (IP.equals("0:0:0:0:0:0:0:1")) {
IP = "127.0.0.1";
} else {
String[] ips = IP.split(",");
for (String ip: ips){
IP = ip.trim();
if (IP.length()<=15) {
IP = ip;
}
if (!(IP.startsWith("192.")) && !(IP.startsWith("10."))) {
break;
}
}
}
}
return IP;
}