Wie versprochen möchte ich nun die Präsentation zu meinem Vortrag “Howto: Expired Domains, Wie baut man einen .de Domainsnapper” auf der SEO Campixx 2011, sowie den Quellcode des Domainsnappers, veröffentlichen.
Der Domainsnapper prüft während der Aktualisierungszeiten der DENIC Nameserver, ob eine Domains frei wird und registriert diese direkt automatisch.
Die Registrierung erfolgt über InterNetworX. Dort benötigt Ihr also ein Kundenkonto und müsst euer Konto aufladen. Ausserdem braucht ihr ein gültiges Handle. Das könnt ihr euch unter Domain-Kontakte anlegen und wird später als Domaininhaber, aber auch Admin-C, Tech-C und Zone-C, eingetragen. Bitte achtet darauf, dass es vom Typ: Person ist, ansonsten funktioniert die Registrierung nicht. Kopiert euch die ID des erstellten Kontakts in die Zwischenablage.
Die Domains, die geprüft werden sollen, müsst ihr in die Datei domains.txt eintragen. Pro Zeile eine Domain. Ganz wichtig: Ohne www.
In der Datei domainsnapper.php müssen folgende Variablen am Anfang des Codes gesetzt werden:
Um den Domainsnapper laufen zu lassen, benötigt ihr einen Server mit SSH Zugang auf dem die Scriptlaufzeit nicht begrenzt ist.
Der Start erfolgt über folgenden Aufruf:
nohup php domainsnapper.php > /dev/null &
Um den Domainsnapper zu stoppen muss der Prozess gekillt werde:
ps ax |grep domainsnapper.php kill PROZESS_ID
Noch ein paar Hinweise:
So und nun viel Spaß mit dem Domainsnapper. Würde mich über Erfahrungsberichte und Beispiele für erfolgreich registrierte Domains sehr freuen.
Download
Zum Download müsst ihr auf den folgenden Button klicken und einen Tweet oder eine Facebook Nachricht hinterlassen. Danach werdet ihr direkt zum Download weitergeleitet.
16. März 2011 um 10:45
Danke!!!!!!!!!!!
16. März 2011 um 11:51
Hey Andreas, vielen Dank für den coolen Vortrag und das Skript – werd es als Grundlage nehmen um meinen Crawler mit nem Snapper zu erweitern. Viel Glück beim expireds fischen weiterhin!
21. März 2011 um 13:21
Oh, ein Namensvetter!
Na dann viel Spaß beim Grabben
16. März 2011 um 12:38
Hallo Andreas,
ich habe für die Campixx leider kein Ticket bekommen. Umso toller finde ich es, daß Du auch außerhalb der Campixx noch Deine Präsentation und das Script der community zur Verfügung stellst!
Danke nochmal!
16. März 2011 um 14:16
Hi Andreas,
wirklich guter Vortrag und cool das du das Skript veröffentlichst.
16. März 2011 um 14:26
Danke dafür. Werde das Teil mal intensiv testen und dann noch mal Feedback geben.
16. März 2011 um 15:40
Hallo,
danke erstmal dafür, habe den Link zu diesem Artikel von einem Campixx Besucher per Skype gekriegt der begeistert war
Wäre es möglich dazu nochmal ein Video zu erstellen, also nicht vom Vortrag sondern von der Einrichtung bis zur Nutzung des Tools?
Gruß,
Henry
16. März 2011 um 19:40
Sorry, aber das ist aktuell nicht geplant.
16. März 2011 um 23:12
Meinst du wirklich Sedo-Nameserver (bei den Hinweisen)?
Gruß,
Michael
17. März 2011 um 10:19
Ja, die liefern für jede Domain eine Antwort zurück, was bei der Registrierung von Vorteil ist. Nach erfolgreicher Registrierung kannst du es ja direkt wieder ändern.
17. März 2011 um 15:28
Hallo Andreas,
vielen Dank für das Teielen deines Snapper-Scriptes. Nur leider mag es bei mir irgendwie nicht so funktionieren (Managed Server, hosteurope)
ist diese Antwort auf “nohup php domainsnapper.php > /dev/null &” so korrekt: “$ nohup: ignoring input and redirecting stderr to stdout”
Danke schonmal für deine Mühe!
Gruß Willy
17. März 2011 um 16:25
Ja, das passt.
17. März 2011 um 17:10
Respekt, alter Expirejunkie ;o)
18. März 2011 um 00:37
Ich bin begeistert! Danke für die tolle Arbeit und die Veröffentlichung.
18. März 2011 um 08:18
@Willy
mit “top” oder “ps ax |grep domainsnapper.php” siehst DU oh das Script rennt.
@Andreas Danke für Dein Vortrag und Script.
18. März 2011 um 10:39
[...] und ein bisschen Glück. Wer mit dem Programmieren noch ein paar Probleme hat, der sollte mal bei angron.de vorbeischauen. Alle die den Vortrag von Andreas Grapp auf der SEO CAMPIXX verpasst haben, können [...]
18. März 2011 um 12:05
Vielen Dank, dass Du es uns zur Verfügung stellst!
Nur eine Frage: Gibt es eine Obergrenze oder Empfehlung, wie viele Domains man maximal in die Liste eintragen sollte?
Beste Grüße,
Manuel
20. März 2011 um 12:50
Je weniger, desto besser. Bei ca. 200 Domains werden diese in etwa jede Minute geprüft.
19. März 2011 um 09:19
@Andreas, Stefan: Danke für die Hilfe.
Wenn ich jedoch “top” oder “ps ax |grep domainsnapper.php” eingebe kommt bei mir nur “Cannot find /proc/version – is /proc mounted?”
Wo liegt hier das Problem, bzw. was müsste als Response auf die Eingabe kommen?
Grüße
20. März 2011 um 12:59
Das liegt an dem managed Server von Hosteurope. Du hast nicht die notwendigen Rechte dazu. Versuch es mal auf einem Root (v)Server.
19. März 2011 um 10:56
Hi,
einfach und nett das Script. Sag mal sperrt der Denic DNS bei zu vielen Anfragen für einige Minuten oder liegt das an einer Einstellung an meinem Server? Kommt irgendwann “Failed to write read data buffer” nach ein paar Tausend Domains…
20. März 2011 um 12:56
Kommt das bei jeder Abfrage, oder nur Zwischendurch?
“UDP stellt einen verbindungslosen, nicht-zuverlässigen Übertragungsdienst bereit. Das bedeutet, es gibt keine Garantie, dass ein einmal gesendetes Paket auch ankommt” (Wikipedia)
Diese Fehler können durchaus mal vorkommen, aber nicht dauerhaft. Du könntest noch versuchen den Nameserver zu wechseln und/oder das Timeout hoch zu setzen. An der DENIC sollte es nicht liegen.
21. März 2011 um 13:02
Wenns nach gut 4000 Request einmal losgeht, kommt es dauerhaft für ca. 3 Minuten – auch von den übrigen Denic Servern. Auch wenn ich einen Sleep von 100ms zwischen den Abfragen einlege oder den Timeout auf 3 Sekunden ändere, passiert das. Ich teste nochmal mit nem anderen Server.
22. März 2011 um 14:22
hallo
leider laeuft das snapper nicht.
sobald ich eine “frei” domain eintrage beendet sich der snapper sofort.
fehler in der nohup
PHP Fatal error: Call to undefined function xmlrpc_encode_request() in /install/domainsnapper/domrobot.class.php on line 33
brauche ich noch bestimmte module / pakete?
oder was ist der fehler?
mein zugangsdaten von iwx sollten stimmen
danke!
22. März 2011 um 14:28
Die domrobot.class.php wird von INWX zur Verfügung gestellt, da kann ich leider keinen Support für geben. Die Klasse wurde 1:1 übernommen und nur zur Registrierung eingebunden. Bei mir funktioniert sie tadellos. Am besten mal bei INWX nachfragen.
22. März 2011 um 14:33
danke fuer die schnelle antwort – habe mal eine anfrage gestellt. melde mich, wenn ich eine anwort erhalten haben.
wo hast du die “klasse” herruntergeladen” evt. gibt es schon eine neue version?
gruss
22. März 2011 um 14:45
https://www.inwx.de/de/help
-> API Dokumentation (ganz unten)
22. März 2011 um 14:52
habe den fehler gefunden – jetzt funktioniert es!
folgende packete haben gefehlt
php-openssl
php-xmlrpc
vielen dank!
braucht jemand eine domain
23. März 2011 um 17:37
Hi,
erstmal Danke für dieses Skript… nun aber eine Frage…
“Not on Twitter? Pay with a post on your Facebook wall!
Soon available again. Please ‘pay’ with Twitter till then.”
Ich hab kein Twitter und FB funktioniert anscheinend nicht? Oder wie geht das? Muss ich mir jetzt dafür einen Twitter Account besorgen?
Vielen Dank für’s beantworten der Fragen.
LG
Steffen
24. März 2011 um 12:37
Hab es gerade getestet. Hat problemlos funktioniert. Bitte noch mal kurz melden, falls es nach wie vor nicht geht.
7. April 2011 um 15:23
Hallo,
Hat jmd den Script intensiv getestet?
Wie sieht es bei .de Domains aus? Hat man auf richtig gute Keys zu snappen ein Chance?
Greetz
P.Kurz
9. April 2011 um 10:44
@ P. Kurz
Man hat keine Chance!
Es wurden auch welche die von mir beobachtet wurden frei, aber es waren immer folgende Grabber schneller:
Grünneberg Wuppertal
Impaxx Investments London
Greenfield
innerhalb von Millisekunden!
9. April 2011 um 14:10
Hallo,
habe nochmal eine Frage, ob das so in der Form richtig funktioniert. Habe das Script momentan auf einem Server mit Root-Rechten liegen.
Nachdem ich “nohup php domainsnapper.php > /dev/null &” eingebe bekomme ich als Antwort: “[1] 6112
nohup: ignoring input and redirecting stderr to stdout
“. So weit so gut. Nach Eingabe von “ps ax |grep domainsnapper.php” bekomme ich das als Response: “7537 ttyp0 S+ 0:00 grep –color=auto domainsnapper.php
” ist das so korrekt?
Denn wenn ich versuche “kill 7537″, kommt stets, dass der Prozess nicht bekannt ist. Die Zahl ändert sich auch nach jeder ps ax Abfrage.
Danke schonmal für die Bemühungen!
11. April 2011 um 07:18
@ Andreas,
warum wird eigentlich ausgerechnet f.nic.de durchsucht? Werden alle Rootserver der denic gleichzeitig geupdated?
11. April 2011 um 10:49
Schau dir mal die Präsentation an. Neben f.nic.de kannst du auch l.de.net oder z.nic.de nehmen. Diese drei werden nach meinem Test gleichzeitig aktualisiert. Die anderen beiden 1-2 Sekunden später.
12. April 2011 um 23:45
Guten Abend Andreas,
vielen Dank für Ihre Mühe und das bereitgestellte tolle Script! Sehr gute Arbeit!
Einige Fragen habe ich jedoch zur Technik:
Ist die Verwendung einer Datenbank nicht sinnvoller, oder ist die Performance bei der Textdatei besser? Oder kommt es vielleicht sogar auf die Anzahl der Einträge an?
Sie schreiben 10000 Abfragen pro Sekunde sind möglich pro Server? Wie genau soll das klappen?
Die Denic-Server haben ja auch Antwortzeiten von 2-6 ms.
Danke sehr! Niklas
13. April 2011 um 07:43
Muss jeder für sich selbst entscheiden, ob er eine DB oder eine Textdatei benutzt. Für dieses Beispiel war die Lösung mit einer Textdatei am einfachsten. Ich selbst setze auch eine DB ein.
10.000 Abfragen / Sekunde kann man mit dem Script nicht schaffen. Aber mit den entsprechenden Mitteln geht es
21. August 2011 um 09:02
Hi,
und was sind denn die entsprechende Mittel? Ich mache das ganze auch mit einer MySQL DB aber komme Nichtmal annähernd an die 10.000 …
Vielen Dank
Gruß,
Hamid
16. April 2011 um 13:15
Hallo Andreas,
wieviele Domains überwachst du (ungefähr) und wieviele Registrierungen pro Jahr machst du dadurch ungefähr im Schnitt?
Denke das wären noch gute Orientierungshilfen, gerade für Neueinsteiger wie mich, die Zahlenmäßig noch überhaupt keine Vorstellung von der Materie haben.
Danke und schöne Grüße!
18. April 2011 um 09:44
Würde dir empfehlen max. 1.000 Domains zu nehmen, die PR <= 3 und Domainpop <= 50 haben. Bei besseren Domains wirst du damit zu geringe Chancen haben.
29. April 2011 um 13:31
Hallo,
habe das gleiche Problem wie Willy am 9. April 2011 geschrieben hab.
Der Prozess ist abgekoppelt vom Elternprozess und von der Bash.
Die PID ändert sich ständig und leider auch die PPID welche wiederrum den INIT Prozess mit der PID 1 hat.
Wie kann ich den Prozess trotzdem killen? Mit nem TERM?
Danke für Hilfe!
Grüße
5. Mai 2011 um 12:25
Hi Andi,
kann ich einfach einen anderen Nameserver eintragen – also keinen von der DENIC – um auch .com .net .org Domains zu checken?
THX
Carlos
5. Mai 2011 um 13:55
Es ist nur mit den DENIC Nameservern getestet und darauf optimiert. Nameserver für andere TLDs müsstest du selbst testen.
14. Juli 2011 um 13:15
Hat es jemand mal mit anderen Domainendungen getestet? Müsste man rein theoretisch wirklich nur den nameserver ändern? Welche Nameserver bieten sich für .com Domains an?
lg
Rubby
17. Mai 2011 um 09:22
hat bisher irgend jmd. eine Sinvolle Domain gesnappt?
Lohnt sich der Aufwand?
Danke
30. Mai 2011 um 21:56
Hallo! weiss jemand was mit den denic Nameservern los ist????
29. Juni 2011 um 18:17
[...] Angron.de Obwohl Andreas Graap schon viele Jahre dabei ist, ist sein Blog noch relativ neu. Auf der SEO-Campixx 2011 hat er einen sehr guten Vortrag zum snappen von .de-Domains gehalten, die Folien kann man hier ansehen: Howto: Expired Domains – Präsentation und Quellcode [...]
14. Juli 2011 um 13:19
muss die Domain mit Domainendung in die txt datei eingetragen werden?
14. Juli 2011 um 13:23
Ja
14. Juli 2011 um 13:21
Wo bekomme ich denn einen Überblick welche De domains wann enden?
14. Juli 2011 um 13:23
Gar nicht.
17. Juli 2011 um 13:08
Hallo!
Welchen Vorteil in Sachen Geschwindigkeit soll dieses Script gegenüber einfachen shell-basierten Abfragen wie nslookup und dig bringen? Die Request-Methode sieht mir auf den ersten Blick sehr, sehr umständlich und unnötig kompliziert aus? Haben Sie da einmal Vergleichstests gemacht zu anderen Möglichkeiten? Wie viele ms braucht eine Antwort?
Gruss,
Frank
18. Juli 2011 um 10:47
Es produziert keinen Overhead. Es werden nur die ersten 12 Bytes abgefragt, mehr sind nicht notwendig. Ausserdem wird UDP anstelle von TCP verwendet. Es ist definitiv schneller als nslookup/dig, kannst es gerne mal testen und hier deine Ergebnisse posten.
Ausserdem werden die Antworten nicht gecachet, was für diesen Einsatz wesentlich ist.
20. Juli 2011 um 17:35
[...] sehr ausführlich beschrieben, um nicht zu sagen fast garnicht. Es ist aber so, dass Andreas einen Post zu seinem Vortrag geschrieben hat, der auch nach den Tagen noch sehr lesenswert ist. Vor allen Dingen weil er einen Domainsnapper [...]
21. Juli 2011 um 05:54
Danke für das Skript. Hat den schon jemand erfolgreich eine URL gespannt? Wo bekommt ihr die URL Listen her?
23. Juli 2011 um 17:13
Hi,
tolle Sache, aber wo finde ich den Quellcode?
VG
23. Juli 2011 um 17:16
wer lesen kann ist klar im Vorteil…
habs…
27. Juli 2011 um 06:40
Morgen Andreas,
ich habe eben Grad über dem Beitrag von Marco deinen Domaingrabber entdeckt. Der Gedankenansatz von diesen Domaingrabber ist ja sehr gut, vielleicht könnte man diese Anwendung noch ein wenig erweitern welche automatisch die Domains über zum Beispiel Google findet. Dann wäre das Projekt perfekt.
Grüße Nico
27. Juli 2011 um 06:52
Kannst es gerne entsprechend deinen Anforderungen anpassen.
Das Programm ist dazu gedacht zu zeigen, wie man gelöschte Domains registrieren kann – nicht wie man potentielle Domains findet. Einfach Google zu scrapen wäre zu einfach. Da speilen viele Faktoren eine Rolle, auf die ich auf der Campixx eingegangen bin. In der Präsentation findest du dazu auch noch ein bischen.
3. August 2011 um 13:55
Hab jetzt auch mal das Script getestet, komm nur irgendwie nicht weiter, wenn ich den Befehl:
nohup php domainsnapper.php > /dev/null &
ausführe, kommt: nohup: ignoriere Eingabe und leite Stabdartfehlerausgabe auf Standartausgabe um
Was bedeutet das? Oder läuft das Script schon?
Hab den befehl mit der Software “Putty” ausgeführt und was passiert wenn ich das Pogramm schliesse? Oder bin ich komplett auf dem Holzweg?
Gruß Chris
3. August 2011 um 14:00
Das ist soweit korrekt. Das Script sollte im Hintergrund laufen – auch wenn du Putty schließt.
Testen kannst du das z.B. mit: ps ax |grep domainsnapper
3. August 2011 um 18:20
Das hab ich mal gemacht, aber was ich seh ist folgendes:
S 0:00 php domainsnapper.php
S+ 0:00 grep domainsnapper
Ich denke das kann nicht sein, oder?
3. August 2011 um 18:23
Doch, sieht gut aus. Der Prozess läuft (der obere).
3. August 2011 um 18:52
Komisch, wenn das Script läuft warum registreirt er dann nicht die zwei domains die in der .txt stehen?
Die Domains sind nämlich frei
3. August 2011 um 18:55
Das kann ich dir so auf die Entfernung leider auch nicht sagen…
5. August 2011 um 16:03
Hallo Andreas,
kann man das Script auch auf dem eigenen Rechner einrichten?
Wenn ja, wie wäre dies möglich? Stichwörter würden mir reichen
5. August 2011 um 18:18
Genau dafür ist es gemacht
8. August 2011 um 15:31
Danke für den Code, mal sehen, was wir daraus basteln
16. August 2011 um 12:00
Danke für den Vortrag. Thema ist spannend.
Ich werde mir auch den Code mal anschauen.
Gruß
Lars
24. August 2011 um 07:54
Hi und danke für das Script. Ich habe allerdings mit Expireds überhaupt keine Erfahrung deswegen mal ne blöde Frage: warum macht man nicht einfach einen Domaincheck per dchk?
24. August 2011 um 07:59
Das geht natürlich auch. Hat allerdings mehr Restriktionen, ebenso wie direkte Whois abfragen.
30. August 2011 um 12:00
Hallo Andreas,
Erstmal, vielen dank für die kostenlose Bereitstellung des Domainsnappers, GROßES KINO
Wenn es erlaubt ist würde ich gerne noch mal die frage von @ Rubby aufgreifen,
Sind noch weitere Domainendungen möglich ? oder ist dieses Tool rein auf .DE Domains beschränkt ??
Gruß
Martin
30. August 2011 um 19:54
Es ist in der jetzigen Form rein auf .de Domains beschränkt.
7. Oktober 2011 um 16:06
[...] Automatisch registrieren: Dazu bedient man sich eines Domain Snappers – den kann man sich auch selbst programmieren. Andreas “Webschorle” Graap (@Angron) hat das schon vorgemacht, Howto: Expired Domains. [...]
16. Oktober 2011 um 11:02
[...] großer Dank geht an Andreas Graap, dessen Domainsnapper-Script ich die Nameserver-Mechanik entnommen [...]
7. November 2011 um 21:08
Hallo und danke, dass du den Code zur Verfügung stellst. Verstehe ich es richtig, dass man das auf einem managed vServer von Hosteurope nicht zum Laufen kriegen kann?
28. Februar 2012 um 13:13
>Bei ca. 200 Domains werden diese in etwa jede Minute geprüft.
voll fett *megarofl*
21. März 2012 um 15:35
Hi, vielen Dank erstmal für das Tool, welches ich heute installiert habe.
Drei Fragen, 1.
11985 pts/0 S 0:00 php domainsnapper.php
12081 pts/0 S+ 0:00 grep domainsnapper.php
Das dürfte ja eigentlich korrekt sein? Zeile 2 (12081) ändert sich jedoch permanent, bzw. die Prozess-ID – liegt wohl an der ständigen Aktualisierung des Tools?
2. Ist die Schnittstelle von InternetWorx noch auf dem gleichen Stand wie bei der Entstehung dieses Tools oder gibt es da Änderungen?
3. Das Handle trage ich ja so ein oder?
$handle = ’47111′; // Contact ID
Ich versuche leider vergeblich, Domains zu registrieren. Funktioniert nicht, obwohl das Tool scheinbar problemlos läuft. Super Idee eigentlich, jetzt muss ichs nur noch zum Laufen kriegen
21. März 2012 um 16:19
Nachtrag:
11985 pts/0 S 0:00 php domainsnapper.php -> Lässt sich beenden mit “Kill 11985″
12081 pts/0 S+ 0:00 grep domainsnapper.php -> Lässt sich nicht beenden bzw. wechselt ständig die ProzessID
7. Juli 2012 um 00:44
Hat mir beim palenen weitergeholfen. Ich habe meinen Expired Domain Dienst mit Python unter Unter http://www.expired-domains.co realisiert. Da poste ich die kostenlos
9. August 2012 um 19:53
hmm wie weiss ich, ob der auch läuft ? Ja doofe frage.. ist aber so
root@ub1:~# nohup php domainsnapper.php > /dev/null &
[1] 9244
root@ub1:~# nohup: ignoriere Eingabe und leite Standardfehlerausgabe auf Standardausgabe um
9. August 2012 um 20:00
oder anders gefragt, wo sehe ich, dass er auch wirklich was macht.. du nohup.out is einfach leeeer.
13. Januar 2013 um 12:48
Beschäftige mich jetzt seit kurzem auch mit der Thematik und hab schon meine ersten Fehler gemacht.
Unter anderem hat mir der Support von INWX bestätigt, dass die Schnittstellen-Funktion domain.check (überprüft ob ein Domainname frei ist) mit einem Cache arbeitet und unter Umständen also nicht den realen Zustand einer Domain in Echtzeit wiedergibt.
Diese Problematik wird dann auf die Funktion domain.create vererbt, da bei jedem Aufruf von domain.create wohl auch ein domain.check aufgerufen wird.
Wenn man also mit dem Nameserver früh genug erkennt ob eine Domain frei ist und sie auch rechtzeitig registrieren könnte, kann der Cache bei INWX einem einen Strich durch die Rechnung machen.
Kennt jemand eine Schnittstelle die entweder ohne Cache arbeitet oder Registrierungen direkt abschickt ohne vorher die Domain nochmal zu prüfen?