1. 程式人生 > >獲取請求方的真實ip

獲取請求方的真實ip

1.介紹

多次轉發過來的請求獲取第一次請求的ip,大概是每次轉發都會把初始的請求ip放到請求頭之類的地方,大概是這樣吧。

    protected String getIpFromRequest(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.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;
    }

2.閒談

   不太清楚實用性,但一貫的都是這種方式獲取,能用就用吧。