Regex für IPv4-Adresse

Nutze /^(?:(?: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)$/, um zu prüfen, ob eine ganze Zeichenkette eine gültige IPv4-Adresse ist. Jedes Beispiel unten wurde gegen das Muster getestet. Du kannst es mit den vorgeladenen Beispielen direkt im Regex-Tester öffnen.

Aktualisiert am

/^(?:(?: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)$/
Im Regex-Tester öffnen
EingabeErgebnis
192.168.1.1✓ Treffer
8.8.8.8✓ Treffer
255.255.255.255✓ Treffer
0.0.0.0✓ Treffer
256.1.1.1✗ Kein Treffer
192.168.1✗ Kein Treffer
01.2.3.4✗ Kein Treffer
1.2.3.4.5✗ Kein Treffer
192.168.1.1/24✗ Kein Treffer

So funktioniert das Muster

TeilBedeutung
25[0-5]250–255
2[0-4]\d200–249
1\d\d100–199
[1-9]?\d0–99, ohne führende Null
(?:…\.){3}Drei Zahlen, jeweils gefolgt von einem Punkt
(?:…)$Die vierte Zahl, dann das Ende der Zeichenkette

Code-Beispiele

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;

Hinweise und Einschränkungen

Jedes Oktett wird auf einen Wert von 0–255 geprüft, was ein einfaches \d{1,3}-Muster nicht kann. Führende Nullen werden abgelehnt, weil manche Systeme sie als Oktalzahl lesen. Um CIDR-Notation zu akzeptieren, hänge (?:\/(?:3[0-2]|[12]?\d))? vor dem $ an.

Häufige Fragen

Wie lautet der Regex für IPv4-Adressen?
/^(?:(?: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)$/ — er prüft die gesamte Zeichenkette. Die Tabelle oben zeigt, was jeder Teil macht.
Welche Beispiele passen?
Von den getesteten Beispielen passen diese: 192.168.1.1, 8.8.8.8, 255.255.255.255 und 0.0.0.0. Die anderen passen nicht.
Wie teste ich diesen Regex?
Klicke auf „Im Regex-Tester öffnen“. Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.