我正在使用Azure的Web App服务并运行Tomcat实例。我想通过IP限制对管理器应用程序的访问,这很容易设置,但是有一个问题,根据Tomcat的说法,所有请求(远程和本地)似乎都来自127.0.0.1。在Azure中有什么方法可以确保正确设置X-Forwarded-For标头吗?
发布于 2015-07-14 17:46:58
由于Azure负载平衡,Azure网站实例似乎可以从127.0.0.1获得请求。所以我们可以使用"X-Forwarded-For“来获取IP地址。
如果请求包含X-Forwarded-For头,其中的第一个IP应该是我们要查找的IP," X-Forwarded-For“被认为是事实上的标准,但是,如果客户端存在于内网,并且通过NAT网关连接到互联网,则您将获得NAT服务器的IP,而不是客户端的IP。有关X-Forwarded- for的更多信息,请参考https://en.wikipedia.org/wiki/X-Forwarded-For。请尝试使用以下代码获取客户端IP。
String ip = request.getHeader("X-FORWARDED-FOR");
if (ip == null) {
ip = request.getRemoteAddr();
}您可以看到这个test result.
https://stackoverflow.com/questions/31400770
复制相似问题