2012-10-03 43 views
0

我有一个jsp web应用程序。我使用代码request.getRemoteAddr()不能从linux工作

request.getRemoteAddr() 

来设置隐藏输入的值,以使用客户端的IP地址填充它。当我的webapp部署在tomacat/windows上时,它给了我正确的IP。但是当webapp部署到tomcat/linux时,它给了我错误的IP地址,如10.0.xx.xx

如何解决它?

+0

10.0.xx.xx是一个本地IP,因此我可以假设它的IP地址你的网络网关(或代理或类似的东西),它将客户端请求路由到你的linux tomcat。我认为你无法修复getRemoteAddr(),因为它工作正常。 –

+0

10.0.xx.xx为什么会出错?也许你的意思是1.0.0.0 ....这将是IP6的问题 - > http://stackoverflow.com/questions/1423347/problem-with-jsp-getremoteaddress –

回答

0

如果您的服务器是一个代理之后,您可以使用X_FORWARDED_FOR标题检索原始地址:

request.getHeader("X_FORWARDED_FOR"); 
0

如果有人(包括您自己)在此服务器前有代理,getRemoteAddr()将返回代理的地址,而不是客户端的代理。