0 && 0 !== substr_compare( $ip_bin, $subnet_bin, 0, $bytes ) ) { return false; } if ( $rem > 0 ) { $mask = ~( ( 1 << ( 8 - $rem ) ) - 1 ) & 0xff; if ( ( ord( $ip_bin[ $bytes ] ) & $mask ) !== ( ord( $subnet_bin[ $bytes ] ) & $mask ) ) { return false; } } return true; } $fea_ranges = ( false !== strpos( $fea_remote, ':' ) ) ? $fea_cf_ipv6 : $fea_cf_ipv4; $fea_from_cf = false; foreach ( $fea_ranges as $fea_cidr ) { if ( fea_ip_in_cidr( $fea_remote, $fea_cidr ) ) { $fea_from_cf = true; break; } } // Solo confiamos en CF-Connecting-IP si la conexión proviene de Cloudflare, // y solo si el valor es una IP válida (evita inyecciones). if ( $fea_from_cf && false !== filter_var( $fea_client, FILTER_VALIDATE_IP ) ) { $_SERVER['REMOTE_ADDR'] = $fea_client; }