diff --git a/inc/core.php b/inc/core.php index d083268..741f5bf 100644 --- a/inc/core.php +++ b/inc/core.php @@ -657,30 +657,35 @@ function ip_in_range($ip, $range) { return (($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal)); } + +// from https://www.cloudflare.com/ips-v4 +// and https://www.cloudflare.com/ips-v6 function _cloudflare_CheckIP($ip) { - $cf_ips = array( - '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', - '131.0.72.0/22', - '2400:cb00::/32', - '2606:4700::/32', - '2803:f800::/32', - '2405:b500::/32', - '2405:8100::/32', - '2a06:98c0::/29', - '2c0f:f248::/32' - ); + $cf_ips = array_filter(array_map('trim',explode("\n"," + 2400:cb00::/32 + 2606:4700::/32 + 2803:f800::/32 + 2405:b500::/32 + 2405:8100::/32 + 2a06:98c0::/29 + 2c0f:f248::/32 + 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/13 + 104.24.0.0/14 + 172.64.0.0/13 + 131.0.72.0/22 + "))); + $is_cf_ip = false; foreach ($cf_ips as $cf_ip) { if (ip_in_range($ip, $cf_ip)) {