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'); }
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); } }
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; } } } }
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'); }
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(); }