System.out.println(request.getLocalAddr());
System.out.println(request.getServerName());
System.out.println(request.getRemoteAddr());//获得访问该服务的客户端的ip地址,大多数时候是真实的,但是当使用了代理,则不正确
System.out.println(request.getRequestURI());
System.out.println(request.getRequestURL());
System.out.println(request.getServerPort());
127.0.0.1
127.0.0.1
127.0.0.1
/certification/ifCert
http://127.0.0.1:8089/certification/ifCert
8089
获得客户端真实ip
//获得客户端真是ip
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();
}
本文介绍了在Java中如何通过HttpServletRequest对象获取客户端的真实IP地址,包括直接访问和使用代理的情况。通过检查多个请求头,如X-Forwarded-For、Proxy-Client-IP等,确保即使在复杂的网络环境中也能准确获取到客户端的IP。
1997

被折叠的 条评论
为什么被折叠?



