当前位置:  开发笔记 > 编程语言 > 正文

为什么HttpServletRequest.getRemoteAddr()在Java servlet中不起作用?

如何解决《为什么HttpServletRequest.getRemoteAddr()在Javaservlet中不起作用?》经验,为你挑选了1个好方法。

我正在使用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,就好像它在真实服务器上运行一样?还是可行的?



1> Jon Skeet..:

它显示的是什么IP地址?我的猜测是有一些代理或改变一些东西.(例如,该脚本页面显示了我的ADSL路由器的IP地址 - 而不是局域网内的IP地址 - 原因显而易见.)

编辑:既然你已经看到你看到的IP地址是127.0.0.1答案是相当清楚的 - 你看到你的环回适配器(即同一台机器的快捷方式)可能是因为你正在测试你正在开发的同一台机器.答案是完全正确的.

从不同的机器尝试它,你会得到一个更有用的IP地址.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有