我有一个 jsp 网络应用程序。我正在使用代码设置隐藏输入的值
request.getRemoteAddr()
用客户端的 IP 地址填充它。当我的 webapp 部署在 tomacat/windows 上时,它会给我正确的 IP。但是当 webapp 部署到 tomcat/linux 时,它给了我错误的 IP 地址,比如 10.0.xx.xx
如何解决?
如果任何人(包括您自己)在此服务器前有代理,getRemoteAddr()
将返回代理的地址,而不是客户端的地址。
如果您的服务器位于代理后面,您可以使用X_FORWARDED_FOR标头检索原始地址:
request.getHeader("X_FORWARDED_FOR");