function cloudflare_init()
{
    global $is_cf;
    $is_cf = isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? TRUE : FALSE;
    // only run this logic if the REMOTE_ADDR is populated, to avoid causing notices in CLI mode
    if (isset($_SERVER["REMOTE_ADDR"])) {
        if (strpos($_SERVER["REMOTE_ADDR"], ":") === FALSE) {
            $cf_ip_ranges = array("199.27.128.0/21", "173.245.48.0/20", "103.21.244.0/22", "103.22.200.0/22", "103.31.4.0/22", "141.101.64.0/18", "108.162.192.0/18", "190.93.240.0/20", "188.114.96.0/20", "197.234.240.0/22", "198.41.128.0/17", "162.158.0.0/15", "104.16.0.0/12", "172.64.0.0/13");
            // IPV4: Update the REMOTE_ADDR value if the current REMOTE_ADDR value is in the specified range.
            foreach ($cf_ip_ranges as $range) {
                if (ipv4_in_range($_SERVER["REMOTE_ADDR"], $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        } else {
            $cf_ip_ranges = array("2400:cb00::/32", "2606:4700::/32", "2803:f800::/32", "2405:b500::/32", "2405:8100::/32");
            $ipv6 = get_ipv6_full($_SERVER["REMOTE_ADDR"]);
            foreach ($cf_ip_ranges as $range) {
                if (ipv6_in_range($ipv6, $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        }
    }
    add_action('admin_menu', 'cloudflare_config_page');
}
Beispiel #2
0
function __rocket_set_real_ip_cloudflare()
{
    global $is_cf;
    $is_cf = isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? TRUE : FALSE;
    // only run this logic if the REMOTE_ADDR is populated, to avoid causing notices in CLI mode
    if (isset($_SERVER["REMOTE_ADDR"])) {
        if (strpos($_SERVER["REMOTE_ADDR"], ":") === FALSE) {
            $cf_ip_ranges = array("199.27.128.0/21", "173.245.48.0/20", "103.21.244.0/22", "103.22.200.0/22", "103.31.4.0/22", "141.101.64.0/18", "108.162.192.0/18", "190.93.240.0/20", "188.114.96.0/20", "197.234.240.0/22", "198.41.128.0/17", "162.158.0.0/15", "104.16.0.0/12");
            // IPV4: Update the REMOTE_ADDR value if the current REMOTE_ADDR value is in the specified range.
            foreach ($cf_ip_ranges as $range) {
                if (ipv4_in_range($_SERVER["REMOTE_ADDR"], $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        } else {
            $cf_ip_ranges = array("2400:cb00::/32", "2606:4700::/32", "2803:f800::/32", "2405:b500::/32", "2405:8100::/32");
            $ipv6 = get_ipv6_full($_SERVER["REMOTE_ADDR"]);
            foreach ($cf_ip_ranges as $range) {
                if (ipv6_in_range($ipv6, $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        }
    }
    // Let people know that the CF WP plugin is turned on.
    if (!headers_sent()) {
        header("X-CF-Powered-By: WP Rocket " . WP_ROCKET_VERSION);
    }
}
Beispiel #3
0
function fix_cf_ip()
{
    if (!isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
        return;
    }
    if (strpos($_SERVER['REMOTE_ADDR'], ':') === FALSE) {
        $cf_ip_ranges = array("204.93.240.0/24", "204.93.177.0/24", "199.27.128.0/21", "173.245.48.0/20", "103.21.244.0/22", "103.22.200.0/22", "103.31.4.0/22", "141.101.64.0/18", "108.162.192.0/18", "190.93.240.0/20", "188.114.96.0/20", "197.234.240.0/22", "198.41.128.0/17", "162.158.0.0/15");
        foreach ($cf_ip_ranges as $range) {
            if (ipv4_in_range($_SERVER['REMOTE_ADDR'], $range)) {
                $_SERVER['REMOTE_ADDR_CF'] = $_SERVER['REMOTE_ADDR'];
                $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
                break;
            }
        }
    } else {
        $cf_ip_ranges = array("2400:cb00::/32", "2606:4700::/32", "2803:f800::/32", "2405:b500::/32", "2405:8100::/32");
        $ipv6 = get_ipv6_full($_SERVER['REMOTE_ADDR']);
        foreach ($cf_ip_ranges as $range) {
            if (ipv6_in_range($ipv6, $range)) {
                $_SERVER['REMOTE_ADDR_CF'] = $_SERVER['REMOTE_ADDR'];
                $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
                break;
            }
        }
    }
}
Beispiel #4
0
function cloudflare_init()
{
    global $is_cf;
    $is_cf = isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? TRUE : FALSE;
    // Only run this logic if the REMOTE_ADDR is populated, to avoid causing notices in CLI mode
    if (isset($_SERVER["REMOTE_ADDR"])) {
        if (FALSE === strpos($_SERVER["REMOTE_ADDR"], ":")) {
            // @FIXME daily download to a transient: https://www.cloudflare.com/ips-v4
            $cf_ip_ranges = array("199.27.128.0/21", "173.245.48.0/20", "103.21.244.0/22", "103.22.200.0/22", "103.31.4.0/22", "141.101.64.0/18", "108.162.192.0/18", "190.93.240.0/20", "188.114.96.0/20", "197.234.240.0/22", "198.41.128.0/17", "162.158.0.0/15", "104.16.0.0/12", "172.64.0.0/13");
            // IPV4: Update the REMOTE_ADDR value if the current REMOTE_ADDR value is in the specified range.
            foreach ($cf_ip_ranges as $range) {
                if (ipv4_in_range($_SERVER["REMOTE_ADDR"], $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        } else {
            // @FIXME daily download to a transient: https://www.cloudflare.com/ips-v6
            $cf_ip_ranges = array("2400:cb00::/32", "2606:4700::/32", "2803:f800::/32", "2405:b500::/32", "2405:8100::/32");
            $ipv6 = get_ipv6_full($_SERVER["REMOTE_ADDR"]);
            foreach ($cf_ip_ranges as $range) {
                if (ipv6_in_range($ipv6, $range)) {
                    if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                        $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                    }
                    break;
                }
            }
        }
    }
    // Let people know that the CF WP plugin is turned on.
    if (!headers_sent()) {
        header("X-CF-Powered-By: WP " . CLOUDFLARE_VERSION);
    }
    add_action('admin_menu', 'cloudflare_config_page');
}
Beispiel #5
0
function cloudflare_init()
{
    global $cf_api_host, $cf_api_port, $is_cf;
    $cf_api_host = "ssl://www.cloudflare.com";
    $cf_api_port = 443;
    $is_cf = $_SERVER["HTTP_CF_CONNECTING_IP"] ? TRUE : FALSE;
    if (strpos($_SERVER["REMOTE_ADDR"], ":") === FALSE) {
        $cf_ip_ranges = array("204.93.240.0/24", "204.93.177.0/24", "199.27.128.0/21", "173.245.48.0/20", "103.22.200.0/22", "141.101.64.0/18", "108.162.192.0/18", "190.93.240.1/20");
        // IPV4: Update the REMOTE_ADDR value if the current REMOTE_ADDR value is in the specified range.
        foreach ($cf_ip_ranges as $range) {
            if (ipv4_in_range($_SERVER["REMOTE_ADDR"], $range)) {
                if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                    $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                }
                break;
            }
        }
    } else {
        $cf_ip_ranges = array("2400:cb00::/32", "2606:4700::/32", "2803:f800::/32");
        $ipv6 = get_ipv6_full($_SERVER["REMOTE_ADDR"]);
        foreach ($cf_ip_ranges as $range) {
            if (ipv6_in_range($ipv6, $range)) {
                if ($_SERVER["HTTP_CF_CONNECTING_IP"]) {
                    $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
                }
                break;
            }
        }
    }
    // Let people know that the CF WP plugin is turned on.
    if (!headers_sent()) {
        header("X-CF-Powered-By: WP " . CLOUDFLARE_VERSION);
    }
    add_action('admin_menu', 'cloudflare_config_page');
    cloudflare_admin_warnings();
}