若用request.getRemoteAddr(),得到的是公网的ip;若用getLocalAddr(),得到的是我网站的网址;要怎样,才可以获取客户端内访问机器的局域网ip;最好自己在公网上试了,在回答,谢谢。...

解决方案 »

  1.   


    /**
     * 获得客户端真实ip
     */
    public static String getIpAddr(HttpServletRequest request) {    
        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();    
        }    
        return ip;    
    }  
      

  2.   

    这样子获取的是公网的ip,不是真实ip;
      

  3.   

    String ip = request.getHeader("X-Real-IP");