Open vignemail1 opened 3 years ago
En ajoutant également un filtrage des lignes commençant par "#" et finissant par un commentaire, cela permet de garder des commentaires dans le fichier afin de facilement identifier les associations/usages des IP tout en gardant la liste des IP.
// On retire tout espace en trop au début et fin de chaine avant les étapes de filtrage
$adresses_ip = array_map('trim', $adresses_ip);
// On retire toute entrée commençant par un #
$adresses_ip = array_filter($adresses_ip, function($val) { return !preg_match('/^\s*#/', $val); } );
// On retire les commentaires en fin de lignes
$adresses_ip = array_map(function($val) { return preg_replace('/\s*#.*$/', $val); }, $adresses_ip );
// On retire tout espace en trop au début et fin de chaine suite aux étapes de filtrage précédentes
$adresses_ip = array_map('trim', $adresses_ip);
Description du problème
Le mode dev requiert de saisir dans un fichier
adresses.txt
la liste des adresses IP individuelles pour autoriser l'accès au mode dev. Dans un contexte dual stack (IPv4 et IPv6 par poste) et/ou de taille de réseau parfois grand (par exemple /24 pour IPv4 et /64 pour IPv6), il serait intéressant d'utiliser des fonctions qui permettraient de detecter si l'IP du visiteur fait partie d'une liste d'IP et/ou subnets (IPv4 et/ou IPv6).Proposition de solution
Il existe un module qui peut être facilement chargé avec
composer
pour étendre les fonctionnalités de traitement des adresses IPv4 et IPv6 et notamment tester si une adresse est dans un subnet, ce qui permettrait de saisir des adresses et/ou subnets IPv4 et IPv6 dans le fichiersadresses.txt
afin d'arriver à un résultat plus compact.URL : https://packagist.org/packages/mlocati/ip-lib
Comme le fichier
index.php
, qui réalise le test, charge le fichierbootstrap.php
qui charge l'autoloader, les fonctions du module seraient directement accessibles.