Kleines Python 3 Skript, mit dem sich ermitteln lässt, welche .de Domains noch nicht vergeben sind.
Warum das Ganze?
Ich hatte kürzlich die Idee, zukünftig für die Anmeldung bei Online-Diensten eine Catchall Mailadresse einzurichten und dann je Dienst eine eigene Mailadresse zu verwenden, um bei Datenleaks etc. zu sehen, wo sie abhanden gekommen sind und vor allem auch, um gezielt sperren zu können.
Ich hätte also gerne Adressen wie amazon@xyz.de und facebook@xyz.de zur Verfügung. Und dafür wäre es doch schön, eine möglichst kurze Domain zu besitzen. xyz.de ist natürlich schon vergeben, aber vielleicht gibt es da ja noch etwas anderes mit wenigen Buchstaben?
Doch wie findet man das nun heraus? Es gibt zwar zig Seiten, bei denen man prüfen kann, ob eine Name schon vergeben ist, aber um gezielt freie Domains zu finden ist das natürlich viel zu aufwändig. Zum Glück gibt es einen Service, der genau das macht: WHOIS.
Folgendes Skript ist dabei herausbekommen. Sicher kein Musterbeispiel der sauberen Programmierkunst, aber es tut genau das was ich möchte: Alle freien .de Domains mit max. 5 Zeichen vor dem Punkt ermitteln.
Dazu nutzt es das „whois“ Paket von Python. Dieses meldet eine Exception, wenn ein Eintrag nicht gepflegt ist und genau das machen wir uns zu nütze. Da so ziemlich viele Anfragen zusammenkommen, fängt der whois Server irgendwann an, nur noch leere Responses zurückzugeben. Daher habe ich eine kleine Wartefunktion für diesen Fall eingebaut, die es dann immer wieder probiert. Zuerst nach 2s, dann nach 4s, nach 8s, etc., schließlich wollen wir den Server ja nicht unnötig zuspammen.

Die Ergebnisse werden live in der Konsole ausgegeben für jede geprüfte Domain und eine Liste aller gefundenen unvergebenen Domains wird in einer Textdatei abgespeichert.
Wer auch auf der Suche ist: Viel Spaß damit 🙂
Das Skript findet ihr bei Github zum Herunterladen: https://github.com/eikowagenknecht/whois
Um es ausführen zu können, müsst ihr Python 3 installiert haben und das Paket whois per pip install python-whois
installiert haben. Dann kann das Skript abgespeichert und per python ./runthis.py
ausgeführt werden.
Ergebnis (Stand heute)
Berücksichtigt sind nur Domains, die ausschließlich aus den Buchstaben a-z bestehen.
Freie 1-Stellige .de Domains: 0 von 26 (0%)
Freie 2-Stellige .de Domains: 0 von 676 (0%)
Freie 3-Stellige .de Domains: 0 von 17576 (0%)
Freie 4-Stellige .de Domains: 49694 von 456976 (10,87%)
Quellen
https://stackoverflow.com/questions/5419389/how-to-overwrite-the-previous-print-to-stdout-in-python
Freiberuflicher IT Berater, Open Source Entwickler und begeisterter Smarthome Nutzer. Das hier ist mein Braindump für Technikthemen, die mich beschäftigen.
Schöne Lösung des Problems.
Leider wird nicht berücksichtigt, dass auch „-“ oder Ziffern als Zeichen möglich sind.
Von irgendwelchen alternativen Umlauten abgesehen.
Das Skript funktioniert mit Whois V 0.7.3, bei 0.8.0 gibt es eine Fehlermeldung
Bei mir hat es ca 1 Tag gedauert bis alle 4-stelligen urls geprüft waren.
Dehalb habe ich den Prozess für 5 und 6 stellige mal auf einen rpi ausgelagert.
Hi Christian,
ich habe gerade ein paar Dinge korrigiert und Ziffern und „-“ mit aufgenommen. Bei mir funktioniert es mit whois 0.8.0. Vielleicht bei dir jetzt auch?
VG, EIko
Super Skript! Genial wäre es wenn man zusätzlich noch eine feste Zeichenfolge vordefinieren könnte.
zB.: Zeichenfolge = abc; Länge = 5;
Ergebnis: xabcx.de; abcxx.de; xxabc.de
Ist nun in der aktualisierten Version enthalten 🙂
Hallo Eiko,
vielen Dank für das Script.
Speichert der die Ergebnisse eigentlich erst nach Abschluss durch oder bereits während der Ausführung des Scripts?
Bin recht neu in Python, das Script hatte ich angepasst und es läuft ohne Probleme 🙂
Moin Sebastian,
die Logdatei wird schon während der Ausführung geschrieben.
VG, Eiko
Hallo Eiko,
danke dir für die schnelle Rückmeldung.
Dann muss ich scheinbar nochmal schauen, warum er dies bei mir nicht macht 🙂
Vielen Dank!