1. 程式人生 > 實用技巧 >獲取客戶端IP地址

獲取客戶端IP地址

/**
     * 獲取客戶端Ip地址
     * @param request   HttpServletRequest
     * @return  ip addr
     */
    private String getRemoteIP(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(); } if (ip.contains(",")) { List<String> moreIps = Arrays.stream(ip.split(",")).map(String::trim).collect(Collectors.toList()); String firstReliableIp = moreIps.stream().filter(i -> !"unknown".equalsIgnoreCase(i)).findFirst().orElse(null
); if (firstReliableIp != null) { ip = firstReliableIp; } } return ip; }