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];
}
我们非常希望这篇文章能为你提供所需的帮助。你的反馈和建议对我们来说都是宝贵的资源。如果你有任何想法或问题,别犹豫,请在下方评论区留言。同时,如果你觉得这篇文章有用,欢迎分享给你的朋友们。你的参与促使我们前行,期待与你一起学习和成长。
如果这篇文章对您有帮助,也可以赞赏博主喝杯茶~