xprivate final static String UNKNOWN = "unknown"; public static String getIPAddress(HttpServletRequest request) { Predicate<String> predicate = ip -> StringUtils.isBlank(ip) || UNKNOWN.equalsIgnoreCase(ip);
String IPAddress = request.getHeader("x-forwarded-for"); if (predicate.test(IPAddress)) { IPAddress = request.getHeader("Proxy-Client-IP"); } if (predicate.test(IPAddress)) { IPAddress = request.getHeader("WL-Proxy-Client-IP"); } if (predicate.test(IPAddress)) { IPAddress = request.getHeader("HTTP_CLIENT_IP"); } if (predicate.test(IPAddress)) { IPAddress = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (predicate.test(IPAddress)) { IPAddress = request.getHeader("X-Real-IP"); } if (predicate.test(IPAddress)) { IPAddress = request.getRemoteAddr(); } if (UNKNOWN.equalsIgnoreCase(IPAddress)) { return null; } else if (StringUtils.isBlank(IPAddress)) { return null; } return IPAddress.split(",")[0]; }
我们非常希望这篇文章能为你提供所需的帮助。你的反馈和建议对我们来说都是宝贵的资源。如果你有任何想法或问题,别犹豫,请在下方评论区留言。同时,如果你觉得这篇文章有用,欢迎分享给你的朋友们。你的参与促使我们前行,期待与你一起学习和成长。
如果这篇文章对您有帮助,也可以赞赏博主喝杯茶~