
Validateur Regex d'adresses IP en Python
Le Validateur Regex d'adresses IP en Python vous aide à vous assurer que toute chaîne de saisie respecte le format correct d'une adresse IPv4. Parfait pour les configurations serveur, les filtres de pare-feu, les validations de formulaires et les outils réseau. Combinez-le avec le Validateur Regex adresse MAC Python pour le filtrage au niveau des appareils, ou associez-le avec le Validateur Regex UUID Python lorsque vous travaillez avec des identifiants et des données réseau.
Validateur Regex d'adresses IP en Python - Documentation
Qu'est-ce qu'une adresse IP ?
Une adresse IP est un identifiant unique attribué à chaque appareil sur un réseau. Les adresses IPv4 utilisent quatre nombres (0-255) séparés par des points, comme :
192.168.0.1Pour valider ce format, on utilise un pattern regex qui vérifie :
Exactement quatre octets
Chacun compris entre 0 et 255
Des séparateurs points (.)
Il est important de s'assurer qu'aucun octet ne dépasse 255. Par exemple, 999.168.0.1 correspond à la structure générale, mais n'est pas une adresse IP valide car 999 est hors plage. Un pattern regex robuste tient compte de cela, garantissant que chaque section est un nombre entre 0 et 255.
Patterns regex courants pour les adresses IPv4
Validation simple (structure uniquement) : vérifie le format en points mais autorise des valeurs comme 999.0.0.1, qui ne sont pas des IP valides.
Validation précise (valeurs 0-255 uniquement) :
25[0-5]: correspond à 250-2552[0-4][0-9]: correspond à 200-2491?[0-9]{1,2}: correspond à 0-199Le pattern global garantit 4 nombres séparés par des
.
Pattern regex pour une adresse IP en Python
Voici un regex qui valide précisément les adresses IPv4 standard :
^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$Explication :
25[0-5] : correspond à 250-255
2[0-4][0-9] : correspond à 200-249
1?[0-9]{1,2} : correspond à 0-199
Le pattern global garantit 4 nombres séparés par des points
Compatibilité des moteurs regex
Ce pattern fonctionne avec la plupart des implémentations regex majeures : le module re de Python, JavaScript, Java, .NET, Perl, PCRE et Ruby. Vous pouvez l'intégrer directement sans modification dans la plupart des environnements de développement.
Extraire des adresses IPv4 depuis un texte plus long
Pour extraire des adresses IPv4 valides depuis un corps de texte (journaux, messages utilisateur, dumps de configuration), un regex bien conçu peut effectuer ce travail efficacement. Le pattern doit :
Identifier quatre octets séparés par des points
Garantir que chaque octet est dans la plage 0-255
\b au début et à la fin empêche de capturer accidentellement une partie d'un autre nombre. Ce pattern est supporté par Python, JavaScript, Java, PCRE, Ruby, Perl et .NET.
Méthodes alternatives pour valider une adresse IP
Bibliothèques réseau : Le module ipaddress de Python et la classe InetAddress de Java proposent des méthodes pour vérifier la validité d'une adresse IPv4 ou IPv6 sans pattern regex personnalisé.
API tierces : Plusieurs services en ligne permettent de vérifier les adresses IP et de fournir des métadonnées supplémentaires (géolocalisation, score de risque).
Utilitaires OS : Sur les systèmes Unix, des utilitaires comme ping valident indirectement les adresses IP en tentant des connexions réseau.
Exemple de code Python
import redef is_valid_ip(ip): pattern = re.compile( r'^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2}).){3}' r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$' ) return bool(pattern.fullmatch(ip))
Test inputs
ips = [ "192.168.0.1", "255.255.255.255", "999.100.100.100", # Invalid "172.16.254.01" ]
for ip in ips: print(f"{ip} -> {is_valid_ip(ip)}")
Différence entre re.match() et re.search()
re.match() : vérifie si le regex correspond au début de la chaîne cible.
python import re result = re.match(r'\d+', '123abc') print(bool(result)) # Output: True
result = re.match(r'\d+', 'abc123') print(bool(result)) # Output: Falsere.search() : parcourt toute la chaîne pour trouver une correspondance n'importe où.
python result = re.search(r'\d+', 'abc123') print(bool(result)) # Output: TrueUtilisez re.match() quand vous ne vous intéressez qu'aux correspondances au début de la chaîne. Utilisez re.search() pour trouver un pattern n'importe où dans la chaîne.
Effectuer une requête API pour la validation IP en Python
import requests
def validateipwithapi(ipaddress, api_key):
url = f"https://api.example.com/validate?ip={ipaddress}&key={apikey}"
try:
response = requests.get(url, timeout=5)
response.raiseforstatus()
result = response.json()
return result.get('valid', False)
except requests.exceptions.RequestException as error:
print(f"Error during API request: {error}")
return FalseCas d'utilisation
Validation de formulaires : validez les IP saisies par les utilisateurs dans des applications web
Règles de pare-feu : correspondance et filtrage des IP réseau
Configuration d'appareils : validez les saisies dans des tableaux de bord locaux ou cloud
Combiner avec : le Validateur Regex adresse MAC Python ou le Validateur Regex Date Python pour synchroniser IP et horodatages
Conseils pratiques
Supprimez toujours les espaces avant la validation (
ip.strip())Évitez de vous fier uniquement aux validations côté client : validez également côté serveur
Combinez avec des vérifications de subnet pour les plages CIDR
Utilisez dans des scripts avec le Validateur Regex GUID Python pour suivre les appareils sur les réseaux
Frequently Asked Questions
Ce regex valide-t-il IPv6 ?
Peut-il valider les IP en notation CIDR comme 192.168.1.0/24 ?
Les zéros initiaux dans les octets sont-ils valides ?
Ce regex peut-il être utilisé dans Flask ou Django ?
Que se passe-t-il si l'entrée contient des points supplémentaires ou des caractères ?
Related Articles



Testez vos API dès aujourd'hui !
Rédigez en langage naturel, Qodex génère des tests sécurisés et prêts à l'emploi.



