在客户端和服务之间增加了中间转发服务器,所以获取到都是转发服务器的地址,尝试了网上帖子的方法后还是不行。。。求大神帮忙!
public static String GetIP(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();
}
return ip;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你说了,有转发服务器,首先要保证转发时要设置原始访问ip,才能保证后面可以获取到。比如nginx转发的可以配置: