JAVA获取客户端IP地址

 public static final String getIp(HttpServletRequest request){ 
            String ip = request.getHeader("X-Forwarded-For"); 
            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                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.getHeader("HTTP_CLIENT_IP");  
                }  
                if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                    ip = request.getHeader("HTTP_X_FORWARDED_FOR");  
                }  
                if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
                    ip = request.getRemoteAddr();  
                }  
            } else if (ip.length() > 15) {  
                String[] ips = ip.split(",");  
                for (int index = 0; index < ips.length; index++) {  
                    String strIp = (String) ips[index];  
                    if (!("unknown".equalsIgnoreCase(strIp))) {  
                        ip = strIp;  
                        break;  
                    }  
                }  
            } 
            return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
        } 

posted @ 2015-12-28 10:40  IT一族  阅读(126)  评论(0编辑  收藏  举报