Zum Hauptinhalt springen

Net::Whois - Der Parser prüft Domaindaten über RDAP und WHOIS

Übersicht über den Parser

Übersicht über den Parser

Domaindaten werden über RDAP (HTTP, JSON) oder WHOIS (Port 43) gesammelt – abhängig von der Domain-Endung. Für jede TLD sind im Parser RDAP- und WHOIS-Server hinterlegt; wenn RDAP für eine Zone verfügbar ist, wird die Abfrage primär darüber ausgeführt, bei Fehlern erfolgt der Rückfall auf WHOIS.

Weitere Informationen: RDAP (engl.), WHOIS.

Die Funktionalität von A-Parser ermöglicht es, Datenerfassungseinstellungen für die spätere Verwendung zu speichern (Presets), Zeitpläne für die Datenerfassung festzulegen und vieles mehr. Sie können die automatische Abfragevervielfältigung, die Ersetzung von Unterabfragen aus Dateien, das Durchlaufen von alphanumerischen Kombinationen und Listen nutzen, um die maximal mögliche Anzahl an Ergebnissen zu erhalten.

Das Speichern der Ergebnisse ist in der von Ihnen benötigten Form und Struktur möglich, dank der integrierten leistungsstarken Template-Engine Template Toolkit, die es ermöglicht, zusätzliche Logik auf die Ergebnisse anzuwenden und Daten in verschiedenen Formaten auszugeben, einschließlich JSON, SQL und CSV.

Anwendungsbeispiele für den Parser

Gesammelte Daten

  • Ob die Domain registriert ist oder nicht
  • Ablaufdatum der Domainregistrierung
  • Wann die Domain registriert wurde
  • Datum der letzten Aktualisierung des Datensatzes
  • URL des RDAP-Servers — bei erfolgreicher RDAP-Anfrage
  • Verwendeter WHOIS-Server — bei WHOIS-Anfrage; bei RDAP oft leer
  • Liste der Nameserver der Domain
  • Domain-Registrar
  • Aktueller Status der Domain
  • Datum der Freigabe der Domain
  • Rohantwort — WHOIS-Text oder RDAP-JSON

Funktionen

  • Automatische Auswahl von RDAP oder WHOIS basierend auf der Domain-Endung (RDAP-Priorität)
  • Unterstützung für internationale Domainnamen (IDN, z. B. яндекс.рф)

Anwendungsfälle

  • Suche nach freien Domains oder solchen, die bald frei werden
  • Erfassung einer Liste von NS-Servern
  • Abfrage von Domain-Status

Abfragen

Als Abfragen muss die Domain der gesuchten Website angegeben werden, zum Beispiel:

a-parser.com  
yandex.ru
google.com
vk.com
facebook.com

Beispiele für die Ergebnisausgabe

A-Parser unterstützt eine flexible Formatierung der Ergebnisse dank der integrierten Template-Engine Template Toolkit, was die Ausgabe der Ergebnisse in beliebiger Form sowie in strukturierter Form wie CSV oder JSON ermöglicht.

Standardausgabe

Ergebnisformat:

$query - registered: $registered, expire: $expire_date, creation: $creation_date

Das Ergebnis zeigt die Domain, ob sie registriert ist, das Ablaufdatum der Registrierung und das Erstellungsdatum der Domain:

facebook.com - registered: 1, expire: 30.03.2028, creation: 29.03.1997
a-parser.com - registered: 1, expire: 25.02.2022, creation: 25.02.2012
vk.com - registered: 1, expire: 23.06.2021, creation: 24.06.1997
yandex.ru - registered: 1, expire: 01.10.2021, creation: 23.09.1997
google.com - registered: 1, expire: 14.09.2028, creation: 15.09.1997

Ausgabe der NS-Liste

Ergebnisformat:

$ns.format('$server\n')

Beispielergebnis:

demi.ns.cloudflare.com
vern.ns.cloudflare.com

Ausgabe von Domain-Fristen in CSV

Ergebnisformat:

[% tools.CSVline(query, registered, expire_date, creation_date, updated_date, free_date, whoisserver, rdapserver, registrar) %]

Ergebnisbeispiel (Domain .com, Antwort über RDAP — whoisserver leer, rdapserver ausgefüllt):

a-parser.com,1,25.02.2027,25.02.2012,10.02.2026,none,,https://rdap.verisign.com/com/v1/domain/a-parser.com,"Squarespace Domains II LLC"

Ausgabe der NS-Liste in eine CSV-Tabelle

Ergebnisformat:

[% FOREACH ns;
tools.CSVline(query, server);
END %]

Beispielergebnis:

a-parser.com,demi.ns.cloudflare.com
a-parser.com,vern.ns.cloudflare.com

Ergebnis-Dump in JSON

Allgemeines Ausgabeformat:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.registered = p1.registered;
obj.expire_date = p1.expire_date;
obj.creation_date = p1.creation_date;
obj.updated_date = p1.updated_date;
obj.free_date = p1.free_date;
obj.whoisserver = p1.whoisserver;
obj.rdapserver = p1.rdapserver;
obj.registrar = p1.registrar;
obj.domains = [];

FOREACH item IN p1.ns;
obj.domains.push({
server = item.server
});
END;

obj.json %]

Anfangstext:

[

Endtext:

]

Beispielergebnis (RDAP):

[{
"registered": 1,
"rdapserver":"https://rdap.verisign.com/com/v1/domain/a-parser.com",
"query":"a-parser.com",
"free_date":"none",
"domains":[
{
"server":"demi.ns.cloudflare.com"
},
{
"server":"vern.ns.cloudflare.com"
}
],
"registrar":"Squarespace Domains II LLC",
"expire_date":"25.02.2027",
"creation_date":"25.02.2012",
"whoisserver":"",
"updated_date":"10.02.2026"
}]
Tipp

Damit die Optionen "Anfangstext" und "Endtext" im Task-Editor verfügbar sind, muss "Mehr Optionen" aktiviert werden.

Ergebnisverarbeitung

A-Parser ermöglicht die Verarbeitung von Ergebnissen direkt während der Datenerfassung. In diesem Abschnitt haben wir die beliebtesten Anwendungsfälle für den Parser Net::Whois aufgeführt.

Abrufen des Domain-Registrars

Bei einer Antwort über WHOIS enthält das Feld $p1.data Text; bei RDAP — JSON. Um den Registrar in beiden Fällen zu erhalten, fügen Sie zwei Ergebnis-Builder hinzu.

Fügen Sie einen Results Builder (Ergebnis-Builder) hinzu und wählen Sie in der Dropdown-Liste die Quelle: $p1.data. Wählen Sie den Typ: RegEx Match. Geben Sie im Feld Regulärer Ausdruck: Registrar:\s*(.+) ein und speichern Sie dies in der Variable registrarwhois.

Fügen Sie erneut einen Results Builder (Ergebnis-Builder) hinzu und wählen Sie in der Dropdown-Liste die Quelle: $p1.data. Wählen Sie den Typ: RegEx Match. Geben Sie im Feld Regulärer Ausdruck: "entities"[\s\S]+?"vcardArray"[\s\S]+?"fn"[\s\S]+?"text"[\s\S]+?"([^"]+?)" ein und speichern Sie dies in der Variable registrarrdap.

Fügen Sie im Result format (Ergebnisformat) hinzu: [% IF registrarrdap == 'none' %]$query - $registrarwhois[% ELSE %]$query - $registrarrdap[% END %] — wenn RDAP den Namen nicht gefunden hat (registrarrdap ist gleich none), wird der Wert aus WHOIS ausgegeben, andernfalls aus RDAP.

Beispiel herunterladen

Wie man ein Beispiel in A-Parser importiert

eJyVVNtO20AQ/RVrFEQoJioPfbGEqkATiSpNKAH1wU6lVTxJt6x3ze46EEX5987Y
jh1TpKpP9lzPmdvuYIPWSaMhugzBC/fk7iw69A6ieAd5+Q8RWFxL562wEEIurKMg
cohhij6Kfvwy0pEhxZUolIdwB36bI4UZym5limSUKckrYzPhKWnpBhuhCnaLT4Lb
cdBg2FTkwdVVcKqNxtPgZNF7LtBug4ug1/i8MCbFjSbz0fsenIUdpl/InmjYLxYh
VNBuXPIg5F5+OaiLbIxzscEHw2ylwlY9JmkqMubbS4VHtg6qgvpnA//KGUSaSk/d
FKpC4Ca1qI9aPnO9K6EchsCUJbqxNRnl9FhmKOs40IuhqgsoR1EGf69imhyOuI4F
MUnfWqRHK7yxs5wJkX4HRg+VmuAGleuQ2F4XUqU00uGKgm7rwPddZn/l2Df1HUPR
4F8scWiylNL17FsblZqJWTd2JTPpSeFuTKGp9o8hPCHmh57B1FB3MmOxQakDa3Ba
2xw1L1k7smHeqjpVdMZypNyBM4VdEl5M+DRlwa2vl5k2C1/L5PyN4P6waVGSuA/9
wfnZwfhQBZDoDU+xu7Ww2If/BZQAak97hS6BmLCSZL44/5zAZilsOrRWbLv6le7K
vFpdTT/+mQD9nSXwT858R0SZ6C2NXsn1rL7pQxML/UDPxkzfmCxXyBPXhVK0sA7v
28sZunpBWWhn9zb4poQgHs1bQnSMcl/nFbfcSmL3iTlntGPHqHXKpVDq8X5ybOFA
500+0yNr3yx2eTIgLqpHbbCkW2wvs6TKRS7p3teGDpEk7kT9BDZP5Y7W+be7q7Qc
Vur2fwBx19yZ

Mögliche Einstellungen

ParameterStandardwertBeschreibung
Recursive queryErmöglicht den Erhalt einer erweiterten WHOIS-Version
WHOIS serverErmöglicht die Angabe eines eigenen WHOIS-Servers
RDAP serverErmöglicht die Angabe eines eigenen RDAP-Servers
Checking by DNSErmöglicht die Überprüfung, ob eine Domain registriert ist, basierend auf der Existenz einer IP für die Domain
Checking domains by DNS recordIP-Prüfung: Wenn der Status ALLOCATED gefunden wird, wird die Domain als registriert eingestuft. Wenn die Option deaktiviert ist, findet keine IP-Prüfung statt
Force DNS check for not found domainsErzwungene Prüfung, wenn die Domain als nicht registriert eingestuft wurde