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

Gemäß RFC 1035 darf jedes Label (der Teil zwischen den Punkten) 1-63 Zeichen umfassen, die gesamte Domain bis zu 253 Zeichen (abgeleitet aus der 255-Oktett-Grenze im Übertragungsformat). Beachten Sie, dass Registrierungsstellen zusätzliche Einschränkungen über diese Grenzen hinaus festlegen können.

Nach RFC 1035/1123 sind in einem Hostnamen nur Buchstaben, Ziffern und Bindestriche zulässig; Unterstriche sind nicht erlaubt. Sie kommen jedoch in DNS-Labels vor, die keine Hostnamen sind, etwa bei TXT- oder SRV-Einträgen (z. B. `_dmarc.example.com`).

RFC 1123 verlangt, dass jedes Label mit einem alphanumerischen Zeichen beginnt und endet. Ein Bindestrich am Anfang oder Ende würde die Verarbeitung mehrdeutig machen und Kompatibilitätsprobleme mit älteren DNS-Implementierungen riskieren.

Internationalisierte Domainnamen (IDN) mit Zeichen wie Japanisch müssen vor der Registrierung im DNS in Punycode (ASCII-Schreibweise mit dem Präfix `xn--`) umgewandelt werden. Da dieses Tool für die Validierung des bereits in Punycode umgewandelten Strings konzipiert ist, sollten Sie eine Nicht-ASCII-Domain zunächst mit dem Punycode-Konverter umwandeln und anschließend hier die Syntaxprüfung durchführen.
ツールくん

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

→ Alle Wissenstexte ansehen