获取http请求的真实IP地址

/**
     * 获取http请求的真实IP地址 
     * @param request
     * @return
     */ 
    // cjianquan 2016/8/2 
    public static String getIPAddr(HttpServletRequest request){ 
        if (request == null) 
            return null; 
        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.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(); 
        if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) 
            try { 
                ip = InetAddress.getLocalHost().getHostAddress(); 
            } 
            catch (UnknownHostException unknownhostexception) { 
            } 
        return ip; 
    } 

猜你喜欢

转载自18871459867.iteye.com/blog/2366912