package com.nq.utils.ip; import javax.servlet.http.HttpServletRequest; public class IpUtils { public static String getIp(HttpServletRequest request) { if (null == request) { return ""; } String ip = request.getHeader("X-Real-IP"); if (isBlankIp(ip)) { ip = request.getHeader("X-real-ip"); } if (isBlankIp(ip)) { ip = request.getHeader("x-forwarded-for"); } if (isBlankIp(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (isBlankIp(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (isBlankIp(ip)) { ip = request.getRemoteAddr(); } if (ip != null && ip.contains(",")) { ip = ip.split(",")[0].trim(); } if ("0:0:0:0:0:0:0:1".equals(ip) || "::1".equals(ip)) { ip = "127.0.0.1"; } return ip == null ? "" : ip.trim(); } private static boolean isBlankIp(String ip) { return ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip); } }