javaweb 获取访问者ip

kkk我爱 发布于 2013/05/16 20:25
阅读 1K+
收藏 1

我在登录系统成功时,记录访问者ip还访问者的用户名,我在自己虚拟机里面发布项目时,(数据库在物理机里面,)但是在获取ip出错了   我用了网上很多中方法  都是获取到0:0:0:0:0:0:0:1

String ip = request.getHeader("x-forwarded-for");
       if(ip == null || ip.length() == 0|| "unknown".equalsIgnoreCase(ip)) {
           ip = request.getHeader("Proxy-Client-IP");
       }
       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
           ip = request.getHeader("WL-Proxy-Client-IP");
       }
       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
           ip = request.getRemoteAddr();
          
       }以及 ip = request.getRemoteHost();

以下是问题补充:

@kkk我爱:虚拟机是centos 想学习一下linux基本操作,然后采用的是nat联网方式 (2013/05/16 20:26)
加载中
0
kintyo
kintyo
这个问题应该是局域网的IP获取问题,所以我尝试了这个
$.getJSON( "http://smart-ip.net/geoip-json?callback=?", function(data){ 
	alert(data);
}
0
skyline520
skyline520
应该用localhost访问的时候才会出现吧,初步估计是/etc/hosts这个东西作怪(在windows上应该是C:\Windows\system32\drivers\etc\ hosts这个文件),只需要注释掉文件中的 # ::1     localhost  这一行即可解决问题,这种一般是开启了ipv6 配置时出现的问题
k
kkk我爱
恩 果然是ipv6的事 注释掉centos中的就没那个了 非常谢谢
0
不是小白
不是小白
楼主使用:127.0.0.1 访问,就ok了。。  其他等同skylline
k
kkk我爱
谢谢了
返回顶部
顶部