Regex pour adresse IPv4

Utilisez /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/ pour vérifier qu'une chaîne entière est une adresse IPv4 valide. Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les exemples déjà chargés.

Mis à jour le

/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/
Ouvrir dans le testeur de regex
SaisieRésultat
192.168.1.1✓ Correspondance
8.8.8.8✓ Correspondance
255.255.255.255✓ Correspondance
0.0.0.0✓ Correspondance
256.1.1.1✗ Aucune correspondance
192.168.1✗ Aucune correspondance
01.2.3.4✗ Aucune correspondance
1.2.3.4.5✗ Aucune correspondance
192.168.1.1/24✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
25[0-5]250–255
2[0-4]\d200–249
1\d\d100–199
[1-9]?\d0–99, sans zéro en début de nombre
(?:…\.){3}Trois nombres, chacun suivi d'un point
(?:…)$Le quatrième nombre, puis la fin de la chaîne

Exemples de code

JavaScript

const re = /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)', value))

PHP

preg_match('/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/', $value) === 1;

Remarques et limites

Chaque octet est vérifié entre 0 et 255, ce qu'un motif simple \d{1,3} ne peut pas faire. Les zéros en début de nombre sont refusés, car certains systèmes les interprètent comme de l'octal. Pour accepter la notation CIDR, ajoutez (?:\/(?:3[0-2]|[12]?\d))? avant $.

Questions fréquentes

Quelle est la regex pour une adresse IPv4 ?
/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 192.168.1.1, 8.8.8.8, 255.255.255.255, 0.0.0.0. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances s'affichent en surbrillance pendant que vous modifiez.