通常,您可以servletRequest.getRemoteAddr()
用来获取正在访问Web应用程序的客户端的IP地址。但是,如果用户位于代理服务器后面或通过负载均衡器访问您的Web服务器(例如,在云托管中),则上述代码段将获取代理服务器或负载均衡器服务器的IP地址,而不是原始IP地址客户。@H_301_3@
因此,您应该获得请求的HTTP标头“ X-Forwarded-For(XFF)”的IP地址@H_301_3@
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}