J2EE中獲取IP地址
在JSP裏,獲取客戶端的IP地址的方法是request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了 Apache,Squid等反向代理軟件就不能獲取到客戶端的真實IP地址了。如果使用了反向代理軟件,用 request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1或 192.168.1.110,而並不是客戶端的真實IP。
HttpServletRequest request = ServletActionContext.getRequest();
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;
}
原帖地址:https://blog.csdn.net/smcwwh/article/details/6255324
最後更新:2017-04-03 20:19:17