Java 获取用户真实IP地址:从 request.getHeader() 到 request.getRemoteAddr()
要从request.getHeader()方法中获取IP地址,可以使用以下代码:
String ipAddress = request.getHeader('X-Forwarded-For');
if (ipAddress == null || ipAddress.length() == 0 || 'unknown'.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader('Proxy-Client-IP');
}
if (ipAddress == null || ipAddress.length() == 0 || 'unknown'.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader('WL-Proxy-Client-IP');
}
if (ipAddress == null || ipAddress.length() == 0 || 'unknown'.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader('HTTP_CLIENT_IP');
}
if (ipAddress == null || ipAddress.length() == 0 || 'unknown'.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader('HTTP_X_FORWARDED_FOR');
}
if (ipAddress == null || ipAddress.length() == 0 || 'unknown'.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}
上述代码会尝试从多个请求头中获取IP地址,包括'X-Forwarded-For'、'Proxy-Client-IP'、'WL-Proxy-Client-IP'、'HTTP_CLIENT_IP'和'HTTP_X_FORWARDED_FOR'。如果这些请求头中都没有IP地址,那么将使用request.getRemoteAddr()方法获取客户端的IP地址。
原文地址: https://www.cveoy.top/t/topic/o3Nc 著作权归作者所有。请勿转载和采集!