Trennen von Domains und Subdomains

Trennen von Domains und Subdomains mit einem Shell Skript

Trennen von Domains und Subdomains ist ein Problem, dass einen durchschnittlichen Software Entwickler auf den ersten Blick nicht wirklich vor ein ernstes Problem stellt. Schnell einen entsprechenden regulären Ausdruck (RegExp) hingeworfen und schon kann man Domains von Subdomains unterscheiden.

z.B. \’^(www\\.)?[a-zA-Z0-9\\-]*\\.(?[a-zA-Z]*)$\’

Schade nur, dass es neben den üblichen Domains wie .de, .com, .net, .org und wie sie alle heißen auch noch andere Vertreter gibt. Es gibt eine nicht zu verachtende Menge von Domains, die dem Schema nicht folgen.

Z.B.

.co.uk, .com.br, .or.jp usw.

Domains in der Forum www.sex.or.jp sind also aus Sicht des Regulären Ausdrucks schon Subdomains. Es ist also unmöglich solche Domain von Subdomains zu unterscheiden ohne mit einer Liste von vorgegebenen TLDs zu arbeiten. Mal ganz davon abgesehen dass es sich streng genommen hierbei ja auch um Subdomains handelt und .or.jp auch nicht wirklich eine TLD ist. Ich nenne sie deshalb gerne auch \”TLD++\”

Zitat RFC 1591

In the Domain Name System (DNS) naming of computers there is a hierarchy of names. The root of system is unnamed. There are a set of what are called \”top-level domain names\” (TLDs). These are the generic TLDs (EDU, COM, NET, ORG, GOV, MIL, and INT), and the two letter country codes from ISO-3166.

Es bleibt also nichts anderes, als mit einer Liste zu arbeiten. Diese Liste muss alle TLD++ enthalten, die man als gültig erachtet. Aus der Liste Meine gesammelte Two Level Domain Liste aus aller Welt kann man aber sehr leicht ersehen, wie viele das sind.

An einem verregnetem Tag habe ich mir mal die Mühe gemacht, und die ca. 350 wichtigsten TLD++ aus der Liste gesucht und mit deren Hilfe einen regulären Ausdruck erstellt, der nur diese Domains und keine Subdomains (außer der Subdomain www) findet. Natürlich ist das immer sehr subjektiv, aber ich möchte den Ausdruck trotzdem hier veröffentlichen.

Das Shell Skript mit dem kompletten RegEx gibt es hier domain.sh.

Michael Jentsch

Michael Jentsch arbeitet seit 2006 bei der Itellium Services GmbH als Entwickler und Software Architekt. Er ist spezialisiert auf Java basierte Web-Applikationen und E-Commerce. Neben dem Beruf interessiert er sich auch für Suchmaschinenoptimierung und ist engagiert in vielen Open Source Projekten im Web Umfeld. Sie erreichen ihn per E-Mail unter [email protected].

More Posts

Weiterführende Themen:

  1. TLD Liste
"));