Bien qu'il soit rare que l'on ait à mettre une adresse IP dans un formulaire, il arrive que l'on ait besoin de les vérifier.
Donc, pour faire suite au billet Les assertions et vérification de formulaire, voici la petite fonction qui me permet de vérifier la syntaxe d'une adresse IP.
Fonction
<?php function isIPAddress($ip) { $pattern = '/^\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b$/'; if (preg_match($pattern, $ip) == 1) return true; else return false; } ?>
Explications de l'expression régulière
L'expression vérifie que l'adresse contient 4 termes séparés par des points. La partie importante est celle que l'on retrouve deux fois:
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
Cette partie vérifie que les termes:
- commencent par 25 et sont suivi d'un chiffre de 0 à 5
- ou commencent par 2, suivi d'un chiffre de 0 à 4, suivi d'un chiffre de 0 à 9
- ou peut commencer par un 0 ou un 1, suivi des nombres de 0 à 99
Ceci nous permet donc de vérifier que les termes couvrent la plage 000 à 255.