public static String getClientIpAddress(HttpServletRequest request) {
        // get real ip from Nginx proxy
        String realIp = request.getHeader("X-Real-IP");
        if (StringUtils.isBlank(realIp) || "unknown".equalsIgnoreCase(realIp)) {
            realIp = request.getHeader("X-Forwarded-For");
        }
        if (StringUtils.isBlank(realIp) || "unknown".equalsIgnoreCase(realIp)) {
            realIp = request.getHeader("Proxy-Client-IP");
        }
        if (StringUtils.isBlank(realIp) || "unknown".equalsIgnoreCase(realIp)) {
            realIp = request.getHeader("WL-Proxy-Client-IP");
        }
        if (StringUtils.isBlank(realIp) || "unknown".equalsIgnoreCase(realIp)) {
            realIp = request.getRemoteAddr();
        }

        // In the case of multiple proxies, the first IP is the real IP of the client,
        // and multiple IPs are divided according to ','
        if (realIp != null && realIp.length() > 15) { // length of "***.***.***.***"
            if (realIp.indexOf(",") > 0) {
                realIp = realIp.substring(0, realIp.indexOf(","));
            }
        }

        return realIp;
    }
Get the real IP of the requesting client

@param request HTTP request params from the client
@return real IP of the client
inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/NetworkUtils.java