Domainnamen-Validator (RFC-Konformitätsprüfung)
Prüft, ob ein Domainname den Syntaxregeln von RFC 1035/1123 entspricht. Validiert einzeln die Label-Länge, die Gesamtlänge, die zulässigen Zeichen und die Position von Bindestrichen und zeigt bei jedem Verstoß den konkreten Grund an.
Tipps zur Nutzung
- Dieses Tool validiert anhand der in RFC 1035/1123 definierten Syntaxregeln; es prüft nicht, ob die Domain tatsächlich registriert ist oder per DNS aufgelöst werden kann.
- Bevor Sie einen eigenen Validierungs-regulären-Ausdruck für ein Formular schreiben, testen Sie mit diesem Tool zunächst die Grenzfälle (genau 63 Zeichen, Position von Bindestrichen usw.), um sicherzustellen, dass Ihre Implementierung diese abdeckt.
- Bei Eingaben mit Nicht-ASCII-Zeichen, etwa japanischen Domainnamen, wird lediglich die Zeichensatzprüfung übersprungen. Wandeln Sie sie zunächst mit dem Punycode-Konverter in die `xn--`-Schreibweise um, um eine vollständig genaue Prüfung zu erhalten.
- Eine rein numerische TLD kommt in der Praxis so gut wie nie vor, ist aber bewusst als Prüfpunkt enthalten, um bei der Formularvalidierung Eingaben zu erkennen, die mit einer IP-Adresse verwechselt werden könnten.
- Dieselben Regeln lassen sich direkt auf den Teil einer E-Mail-Adresse nach dem `@`-Zeichen anwenden und eignen sich somit auch als einfache Prüfung der E-Mail-Domain.
Häufig gestellte Fragen
Übrigens – Warum die Validierung von Domainnamen immer wieder neu erfunden wird
Die Syntaxprüfung von Domainnamen wirkt auf den ersten Blick so, als ließe sie sich mit einem einzigen einfachen regulären Ausdruck erledigen, doch tatsächlich sind es viele Entwickler, die bei eigenen Implementierungen gestolpert sind. Ob E-Mail-Validierung in Formularen, Hostnamen-Parsing in Konfigurationsdateien oder URL-Validierung in APIs – „domainähnliche Zeichenketten" tauchen überall auf, doch Implementierungen, die die offiziellen Regeln aus RFC 1035 (1987) und RFC 1123 (1989) korrekt widerspiegeln, sind erstaunlich selten.
Die zweistufige Längenbegrenzung – 63 Zeichen pro Label, insgesamt 253 Zeichen – stammt direkt aus dem Design des DNS-Übertragungsformats (dem binären Format, das tatsächlich über das Netzwerk ausgetauscht wird). Jedem Label wird ein einzelnes Längenbyte vorangestellt, und dieses Byte ist auf den Bereich 0-63 beschränkt (der mit 6 Bit maximal darstellbare Wert) – dies ist der unmittelbare Grund für die Label-Längenbegrenzung.
Auch die Konvention, dass eine TLD nicht ausschließlich aus Ziffern bestehen sollte, hat eine interessante Geschichte. Sie ist keine von einem RFC vorgeschriebene Regel, sondern vielmehr eine weit verbreitete Implementierungspraxis, um Domainnamen von IPv4-Adressen (Folgen von Ziffern und Punkten) zu unterscheiden. Viele DNS-Resolver und Browser nutzen diese Konvention, um zu entscheiden, dass eine Zeichenkette wie 192.168.1.1 als IP-Adresse und nicht als Domainname behandelt werden soll.