我正在使用java servlet开发一个Web应用程序,我希望通过request.getRemoteAddr()
从内部调用来获取用户的ip信息processRequest(HttpServletRequest request,HttpServletResponse response)
.
但它返回错误的IP.由于我对这个领域不是很了解,我不知道它在显示什么,也许是代理,我得到了这个:
RemoteAddr : 127.0.0.1 RemoteHost : 127.0.0.1 x-forwarded-for : null
127.0.0.1不是我的IP.
然而,当我去:http://www.javascriptkit.com/script/script2/displayip.shtml
它将显示正确的,因为我使用servlet,我没有.shtml到我动态生成的html页面,我该怎么办?为什么该网站上的脚本能够正确显示而request.getRemoteAddr()
无法执行此操作?
感谢所有答案,我现在有了一个线索,在将其部署到服务器之后,它按预期工作.显示正确的地址.
但即使我在本地机器上开发它,如何要求它显示绝对IP,就好像它在真实服务器上运行一样?还是可行的?
它显示的是什么IP地址?我的猜测是有一些代理或改变一些东西.(例如,该脚本页面显示了我的ADSL路由器的IP地址 - 而不是局域网内的IP地址 - 原因显而易见.)
编辑:既然你已经看到你看到的IP地址是127.0.0.1答案是相当清楚的 - 你看到你的环回适配器(即同一台机器的快捷方式)可能是因为你正在测试你正在开发的同一台机器.答案是完全正确的.
从不同的机器尝试它,你会得到一个更有用的IP地址.