zoukankan      html  css  js  c++  java
  • 处理java获取ip为0:0:0:0:0:0:0:1的问题

     

    0:0:0:0:0:0:0:1是ipv6的表现形式,对应ipv4来说相当于127.0.0.1,也就是本机

    如果项目部署在本机win7系统,访问时是通过 localhost 来访问,

    用java获取ip地址可能会出现该问题,这时获取的ip将是 0:0:0:0:0:0:0:1

    要是机器在局域网中,访问时使用自己的ip访问,如 我的ip是 :192.168.123.156

    访问url:http://192.168.123.156:8080/test

    这时候请求会经过路由器转发,所以服务器获取的就是本机的局域网内ip,在java中获取的ip就是 192.168.123.156了

    下面几个获取ip的方法:

    复制代码
        public static String getIP(HttpServletRequest request) {
            String ip = request.getHeader("x-forwarded-for");
            if (!checkIP(ip)) {
                ip = request.getHeader("Proxy-Client-IP");
            }
            if (!checkIP(ip)) {
                ip = request.getHeader("WL-Proxy-Client-IP");
            }
            if (!checkIP(ip)) {
                ip = request.getRemoteAddr();
            }
            return ip;
        }
        private static boolean checkIP(String ip) {
            if (ip == null || ip.length() == 0 || "unkown".equalsIgnoreCase(ip)
                    || ip.split(".").length != 4) {
                return false;
            }
            return true;
        }
    复制代码

    原文地址:http://blog.csdn.net/leoz0802/article/details/6364565

    另一篇:http://java161.iteye.com/blog/1189279

    request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法

    最近在进行web开发时,在jsp页面获取服务器ip时,遇到了request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1,这是为什么呢,照道理讲,应该是127.0.0.1才对,为什么这个获取的值变成了ipv6了呢,而且我发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),后来上网查了查原因,原来是/etc/hosts这个东西作怪(在windows上应该是C:WindowsSystem32driversetchosts这个文件),仅仅只需要文件中的 # ::1 localhost 这一行被注释掉即可解决问题。另外localhost这个文件很有用,这里你可以添加自己的条目,例如添加 192.168.0.212 myweb 这样子,在浏览器中原来只能使用192.168.0.212来访问的,并可以使用myweb来进行替换。

    如果还不能解决,本机访问的时候用127.0.0.1或本机ip代替localhost即可解决

  • 相关阅读:
    手机号码正则表达式
    POJ 3233 Matrix Power Series 矩阵快速幂
    UVA 11468
    UVA 1449
    HDU 2896 病毒侵袭 AC自动机
    HDU 3065 病毒侵袭持续中 AC自动机
    HDU 2222 Keywords Search AC自动机
    POJ 3461 Oulipo KMP模板题
    POJ 1226 Substrings KMP
    UVA 1455 Kingdom 线段树+并查集
  • 原文地址:https://www.cnblogs.com/originate918/p/6774916.html
Copyright © 2011-2022 走看看