jsp页面中用request.getRemoteAddr()获取的IP地址竟然为0:0:0:0:0:0:0:1 换台机器IP显示正常,这是为什么呢,照道理讲,应该是127.0.0.1才对,为什么这个获取的值变成了ipv6了呢,而且我发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),后来上网查了查原因。
原来是/etc/hosts这个东西作怪(在windows上应该是C:Windowssystem32driversetc hosts这个文件),只需要注释掉文件中的 # ::1 localhost 这一行即可解决问题。另外localhost这个文件很有用,这里你可以添加自己的条目,例如添加 192.168.0.212 myweb 这样子,在浏览器中原来只能使用192.168.0.212来访问的,并可以使用myweb来进行替换。
我用的win7系统 同样遇到此问题,打开文件发现 # ::1 localhost 已注释 没有解决问题;后来强制改成 127.0.0.1 localhost
# 127.0.0.1 activate.adobe.com
# ::1 localhost
问题解决 特回复 希望对大家有所帮助,高手们给点原理性解释 期待!!!
修改保存之后只要重启一下Tomcat服务器就可以啦。
ps:
在IPv6的单播地址中有两种特殊地址,0:0:0:0:0:0:0:0
全零(可简写为::)的地址叫未指定地址,一般不分配给主机