代码如下:  public 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;    
}
在本地就可以的,但是上传到服务器 获得的不是真实的IP这就为什么呢?系统中有用户总就刷机,就是不断点击网站,现在想看下是哪里的IP访问的? 

解决方案 »

  1.   

    String ip = request.getRemoteAddr();
    用这个试试
      

  2.   

    人家用过啦~~~最后一个if么。
    话说我的只是。太不全面了。。 private String getRemoteIP(HttpServletRequest request){
    if(request.getHeader("x-forwarded-for") == null){
    return request.getRemoteAddr();
    }
    return request.getHeader("x-forwarded-for");
    }那你得到的是个什么格式的ip呢?
    另外获得客户端IP这个问题其实很难搞啊,那么多层马甲怎能轻易就被扒光?