request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法
Posted 小猴子爱吃桃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法相关的知识,希望对你有一定的参考价值。
问题:
在近期开发的javaweb项目中,需要记录登录时的电脑ip地址和主机名,通过request.getRemoteAddr()和request.getRemoteHost()得到的值都是0:0:0:0:0:0:0:1。
原因:
0:0:0:0:0:0:0:1是属于ipv6,后来我又进行另一台电脑做测试,发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),这是hosts配置文件的问题 。
解决方法:
注释掉文件中的 # ::1 localhost 这一行即可解决问题。网上这种方式可以,但我这样做不可以
最有效的方式就是改变请求的ip,不要使用localhost:8080
使用127.0.0.1:8080或者ip:8080。
以上是关于request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法的主要内容,如果未能解决你的问题,请参考以下文章
为啥 request.getRemoteAddr() 根据上下文返回 ipv4 或 ipv6(post 查询或 ajax 查询)
急求,请教下各位,为啥用request.getRemoteAddr()获取的Ip都不是真实的
request.getRemoteAddr()取得的是IPv6的地址格式解决方法