使用代理后
request.getRemoteAddr(); 取到的不是真正的客户端IP地址而是代理服务器的地址
可以遍历一下Header信息,一般会在某个Header字段中写入真实客户的IP地址
<%
response.setContentType("text/plain");
out.println("Request Headers:");
Enumeration names = request.getHeaderNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
Enumeration values = request.getHeaders(name); // support multiple values
if (values != null) {
while (values.hasMoreElements()) {
String value = (String) values.nextElement();
out.println("<br/>"+ name + ": " + value);
}
}
}
%>
一般来说会是这个
out.println("REAL IP:" + request.getHeader("x-remote-addr"));