NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validateur Regex d'adresses IP en Python

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.1

Pour 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-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 .

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 re

def 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)}")

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: False

re.search() : parcourt toute la chaîne pour trouver une correspondance n'importe où.

python result = re.search(r'\d+', 'abc123') print(bool(result)) # Output: True

Utilisez 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 False

Cas 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 ?

Non. Ce pattern correspond uniquement aux adresses IPv4. Utilisez un pattern différent pour IPv6.

Peut-il valider les IP en notation CIDR comme 192.168.1.0/24 ?

Non, ce regex ne supporte pas la notation CIDR. Uniquement les adresses IPv4 seules.

Les zéros initiaux dans les octets sont-ils valides ?

Techniquement oui, mais certains systèmes les traitent comme de l'octal. Évitez-les pour la clarté.

Ce regex peut-il être utilisé dans Flask ou Django ?

Oui. Intégrez-le dans vos validateurs de formulaires ou vos vérifications de champs de modèle personnalisés.

Que se passe-t-il si l'entrée contient des points supplémentaires ou des caractères ?

La validation échouera, garantissant une stricte conformité au format.

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.