You are here

function cloudflare_ip_ranges in CloudFlare 7.2

Get a list of cloudflare IP Ranges

2 calls to cloudflare_ip_ranges()
cloudflare_boot in ./cloudflare.module
Implementation of hook_boot().
cloudflare_ip_address_in_range in ./cloudflare.module
Given an IP range like 8.8.8.0/24, check to see if an IP address is in it

File

./cloudflare.module, line 182

Code

function cloudflare_ip_ranges() {
  if ($cache = cache_get('cloudflare_ip_ranges')) {
    return $cache->data;
  }
  else {
    $ip_blocks = file_get_contents(CLOUDFLARE_URL_IPV4_RANGE);
    if ($ip_blocks === FALSE) {
      watchdog('cloudflare', 'Unable to fetch IP address information from cloudflare. Until resolved, IP address detection is non-functional.', NULL, WATCHDOG_ALERT);
      return FALSE;
    }
    $cloudflare_ips = explode("\n", $ip_blocks);
    $cloudflare_ips = array_filter($cloudflare_ips);
    $cloudflare_ips = array_map('trim', $cloudflare_ips);
    cache_set('cloudflare_ip_ranges', $cloudflare_ips);
    return $cloudflare_ips;
  }
}