function is_cloudflare_ip($ip) { // updated: 2024-09-19 // Convert IP string to number if (!is_string($ip)) { $bytes = explode('.', $ip); $ip = 0; foreach ($bytes as $n) { $ip <<= 8; $ip |= (int)$n; } } // Check rules switch ($ip & 4294443008) { case 1745879040: case 2889875456: return true; } switch ($ip & 4294705152) { case 1746403328: return true; } switch ($ip & 4294836224) { case 2728263680: return true; } switch ($ip & 4294934528) { case 3324608512: return true; } switch ($ip & 4294950912) { case 2372222976: case 1822605312: return true; } switch ($ip & 4294963200) { case 2918526976: case 3193827328: case 3161612288: return true; } switch ($ip & 4294966272) { case 1729491968: case 1729546240: case 1730085888: case 3320508416: case 2197833728: return true; } return false; }