NomexPlayZ
Verified Member
- 15
- 2015
- 0
Cloudflare changed over the time theyr ip ranges.
Changes affected in -> application/hooks/cloudflare/cloudflare.php
Have fun!
PHP:
<?php
/**
* Fixes the client IP if cloudflare is enabled.
*
* @package FusionCMS
* @author Maxi Arnicke
* [MENTION=17881]Link[/MENTION] [url]http://fusion-hub.com[/url]
*/
require_once(APPPATH.'hooks/cloudflare/ip_in_range.php');
function fix_cf_ip()
{
if ( ! isset($_SERVER['HTTP_CF_CONNECTING_IP']))
return;
if (strpos($_SERVER['REMOTE_ADDR'], ':') === FALSE)
{
$cf_ip_ranges = array("103.21.244.0/22","103.22.200.0/22","103.31.4.0/22","104.16.0.0/12","108.162.192.0/18","131.0.72.0/22","141.101.64.0/18","162.158.0.0/15","172.64.0.0/13","173.245.48.0/20","188.114.96.0/20","190.93.240.0/20","197.234.240.0/22","198.41.128.0/17");
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","2405:8100::/32","2405:b500::/32","2606:4700::/32","2803:f800::/32","2c0f:f248::/32","2a06:98c0::/29");
$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;
}
}
}
}
Changes affected in -> application/hooks/cloudflare/cloudflare.php
Have fun!