我發現一些不同的方式來在servlet中獲取IP。但我不知道哪一個是對的,爲什麼。什麼是正確的方式來獲取請求的IP
1:
request.getHeader("X-Real-IP")
2:
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.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
} `
3:
String ip=request.getHeader("x-forwarded-for");
if(ip==null){
ip=request.getRemoteAddr();
}
String ips[]=ip.split(",");`
ip=ips[0];
檢查此鏈接:http://stackoverflow.com/questions/10363069/how-can-i-retrieve-ip-address-from-http-header-in-java/10363109#10363109 – 2013-08-21 06:37:49