net.dig DNS-Informationen bei Nameservern abfragen
Grundlagen
Live-Beispiel aufrufen
API-Anfrage
Um eine Nameserver-Abfrage zu starten, müssen Sie das Modul net, die action dig sowie den zu prüfenden Domainnamen domainname angeben. Zusätzlich können Sie einen Nameserver nameserver vorgeben.:
Übergeben Sie ein JSON-Objekt als String via POST oder GET aus Ihrer Software:
{ "action" : "dig", "apikey" : "abcd1234", "data" : { "domainname" : "google.de" }, "modul" : "net" }
Nutzen Sie die Punktnotation, um die Daten per POST oder GET an die API zu übertragen:
action=dig apikey=abcd1234 data.domainname=google.de modul=net
https://nettz.de/api.cgi?action=dig&apikey=abcd1234&data.domainname=google.de&modul=net
Übertragen Sie die Parameter per XML an die API:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <opt action="dig" apikey="abcd1234" modul="net"> <data domainname="google.de" /></opt>
Die API frägt dann entweder den angegebenen nameserver oder einen unserer Default-Nameserver nach dem Werten für die Domain domainname..
API-Anfrage-Optionen
Sie können folgende Optionen im data-Zweig bei der Anfrage angeben, um die Spezifikationen für die Berechnungen und die Ausgabe zu steuern:
domainname
Ein gültiger Domainname (ohne http oder andere Protokollangaben). Bsp.: "google.de".
nameserver
Der Hostname oder die IP-Adresse des Nameservers, der abgefragt werden soll. Wenn Sie keinen Nameserver angeben, wird ein interner nettz.de-Nameserver für die Abfrage genutzt.
API-Antwort
Wenn der domainname korrekt aufgelöst werden konnte, antwortet die API mit fünf verschiedenen Hashes im data-Objekt:
{ "data" : { "authority" : [ { "class" : "IN", "name" : "google.de.", "rdata" : [ "ns1.google.com." ], "rdlen" : 16, "ttl" : 65812, "type" : "NS" }, { "class" : "IN", "name" : "google.de.", "rdata" : [ "ns2.google.com." ], "rdlen" : 6, "ttl" : 65812, "type" : "NS" }, { "class" : "IN", "name" : "google.de.", "rdata" : [ "ns3.google.com." ], "rdlen" : 6, "ttl" : 65812, "type" : "NS" }, { "class" : "IN", "name" : "google.de.", "rdata" : [ "ns4.google.com." ], "rdlen" : 6, "ttl" : 65812, "type" : "NS" } ], "environment" : { "bytes" : 109, "class" : "IN", "elapsed" : "41", "errno" : "", "nrecs" : 5, "peeraddr" : [ "ns1.nettz.de" ], "peerport" : 53, "proto" : "UDP", "recursion" : 256, "server" : "ns1.nettz.de", "text" : "\n; <<>> Net::DNS::Dig 0.12 <<>> -t aaaa google.de.\n;;\n;; Got answer.\n;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39790\n;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0\n\n;; QUESTION SECTION:\n;google.de.\t\tIN\tAAAA\n\n;; AUTHORITY SECTION:\ngoogle.de.\t65812\tIN\tNS\t ns1.google.com.\ngoogle.de.\t65812\tIN\tNS\t ns2.google.com.\ngoogle.de.\t65812\tIN\tNS\t ns3.google.com.\ngoogle.de.\t65812\tIN\tNS\t ns4.google.com.\n\n;; Query time: 41 ms\n;; SERVER: 212.114.34.195# 53(ns1.nettz.de)\n;; WHEN: Mon Jul 8 21:51:40 2019\n;; MSG SIZE rcvd: 109 -- XFR size: 5 records\n", "timeout" : 15 }, "header" : { "aa" : 0, "ad" : 0, "ancount" : 0, "arcount" : 0, "cd" : 0, "id" : 39790, "mbz" : 0, "nscount" : 4, "opcode" : "QUERY", "qdcount" : 1, "qr" : 1, "ra" : 0, "rcode" : "NOERROR", "rd" : 1, "tc" : 0 }, "question" : [ { "class" : "IN", "name" : "google.de.", "type" : "AAAA" } ] }, "status" : 1, "timestamp" : 1562615500 }
data.authority:0.class=IN data.authority:0.name=google.de. data.authority:0.rdata:0=ns1.google.com. data.authority:0.rdlen=16 data.authority:0.ttl=65812 data.authority:0.type=NS data.authority:1.class=IN data.authority:1.name=google.de. data.authority:1.rdata:0=ns2.google.com. data.authority:1.rdlen=6 data.authority:1.ttl=65812 data.authority:1.type=NS data.authority:2.class=IN data.authority:2.name=google.de. data.authority:2.rdata:0=ns3.google.com. data.authority:2.rdlen=6 data.authority:2.ttl=65812 data.authority:2.type=NS data.authority:3.class=IN data.authority:3.name=google.de. data.authority:3.rdata:0=ns4.google.com. data.authority:3.rdlen=6 data.authority:3.ttl=65812 data.authority:3.type=NS data.environment.bytes=109 data.environment.class=IN data.environment.elapsed=41 data.environment.errno= data.environment.nrecs=5 data.environment.peeraddr:0=ns1.nettz.de data.environment.peerport=53 data.environment.proto=UDP data.environment.recursion=256 data.environment.server=ns1.nettz.de data.environment.text= ; <<>> Net::DNS::Dig 0.12 <<>> -t aaaa google.de. ;; ;; Got answer. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39790 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.de. IN AAAA ;; AUTHORITY SECTION: google.de. 65812 IN NS ns1.google.com. google.de. 65812 IN NS ns2.google.com. google.de. 65812 IN NS ns3.google.com. google.de. 65812 IN NS ns4.google.com. ;; Query time: 41 ms ;; SERVER: 212.114.34.195# 53(ns1.nettz.de) ;; WHEN: Mon Jul 8 21:51:40 2019 ;; MSG SIZE rcvd: 109 -- XFR size: 5 records data.environment.timeout=15 data.header.aa=0 data.header.ad=0 data.header.ancount=0 data.header.arcount=0 data.header.cd=0 data.header.id=39790 data.header.mbz=0 data.header.nscount=4 data.header.opcode=QUERY data.header.qdcount=1 data.header.qr=1 data.header.ra=0 data.header.rcode=NOERROR data.header.rd=1 data.header.tc=0 data.question:0.class=IN data.question:0.name=google.de. data.question:0.type=AAAA status=1 timestamp=1562615500
data.authority:0.class=IN&data.authority:0.name=google.de.&data.authority:0.rdata:0=ns1.google.com.&data.authority:0.rdlen=16&data.authority:0.ttl=65812&data.authority:0.type=NS&data.authority:1.class=IN&data.authority:1.name=google.de.&data.authority:1.rdata:0=ns2.google.com.&data.authority:1.rdlen=6&data.authority:1.ttl=65812&data.authority:1.type=NS&data.authority:2.class=IN&data.authority:2.name=google.de.&data.authority:2.rdata:0=ns3.google.com.&data.authority:2.rdlen=6&data.authority:2.ttl=65812&data.authority:2.type=NS&data.authority:3.class=IN&data.authority:3.name=google.de.&data.authority:3.rdata:0=ns4.google.com.&data.authority:3.rdlen=6&data.authority:3.ttl=65812&data.authority:3.type=NS&data.environment.bytes=109&data.environment.class=IN&data.environment.elapsed=41&data.environment.errno=&data.environment.nrecs=5&data.environment.peeraddr:0=ns1.nettz.de&data.environment.peerport=53&data.environment.proto=UDP&data.environment.recursion=256&data.environment.server=ns1.nettz.de&data.environment.text=%0A;%20%3C%3C%3E%3E%20Net::DNS::Dig%200.12%20%3C%3C%3E%3E%20-t%20aaaa%20google.de.%0A;;%0A;;%20Got%20answer.%0A;;%20-%3E%3EHEADER%3C%3C-%20opcode:%20QUERY,%20status:%20NOERROR,%20id:%2039790%0A;;%20flags:%20qr%20rd;%20QUERY:%201,%20ANSWER:%200,%20AUTHORITY:%204,%20ADDITIONAL:%200%0A%0A;;%20QUESTION%20SECTION:%0A;google.de.%09%09IN%09AAAA%0A%0A;;%20AUTHORITY%20SECTION:%0Agoogle.de.%0965812%09IN%09NS%09%20ns1.google.com.%0Agoogle.de.%0965812%09IN%09NS%09%20ns2.google.com.%0Agoogle.de.%0965812%09IN%09NS%09%20ns3.google.com.%0Agoogle.de.%0965812%09IN%09NS%09%20ns4.google.com.%0A%0A;;%20Query%20time:%2041%20ms%0A;;%20SERVER:%20212.114.34.195#%2053(ns1.nettz.de)%0A;;%20WHEN:%20Mon%20Jul%20%208%2021:51:40%202019%0A;;%20MSG%20SIZE%20rcvd:%20109%20--%20XFR%20size:%205%20records%0A&data.environment.timeout=15&data.header.aa=0&data.header.ad=0&data.header.ancount=0&data.header.arcount=0&data.header.cd=0&data.header.id=39790&data.header.mbz=0&data.header.nscount=4&data.header.opcode=QUERY&data.header.qdcount=1&data.header.qr=1&data.header.ra=0&data.header.rcode=NOERROR&data.header.rd=1&data.header.tc=0&data.question:0.class=IN&data.question:0.name=google.de.&data.question:0.type=AAAA&status=1&timestamp=1562615500
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <opt status="1" timestamp="1562615500"> <data> <authority name="google.de." class="IN" rdlen="16" ttl="65812" type="NS"> <rdata>ns1.google.com.</rdata> </authority> <authority name="google.de." class="IN" rdlen="6" ttl="65812" type="NS"> <rdata>ns2.google.com.</rdata> </authority> <authority name="google.de." class="IN" rdlen="6" ttl="65812" type="NS"> <rdata>ns3.google.com.</rdata> </authority> <authority name="google.de." class="IN" rdlen="6" ttl="65812" type="NS"> <rdata>ns4.google.com.</rdata> </authority> <environment bytes="109" class="IN" elapsed="41" errno="" nrecs="5" peerport="53" proto="UDP" recursion="256" server="ns1.nettz.de" text="; <<>> Net::DNS::Dig 0.12 <<>> -t aaaa google.de.;;;; Got answer.;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39790;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0;; QUESTION SECTION:;google.de. IN AAAA;; AUTHORITY SECTION:google.de. 65812 IN NS ns1.google.com.google.de. 65812 IN NS ns2.google.com.google.de. 65812 IN NS ns3.google.com.google.de. 65812 IN NS ns4.google.com.;; Query time: 41 ms;; SERVER: 212.114.34.195# 53(ns1.nettz.de);; WHEN: Mon Jul 8 21:51:40 2019;; MSG SIZE rcvd: 109 -- XFR size: 5 records" timeout="15"> <peeraddr>ns1.nettz.de</peeraddr> </environment> <header id="39790" aa="0" ad="0" ancount="0" arcount="0" cd="0" mbz="0" nscount="4" opcode="QUERY" qdcount="1" qr="1" ra="0" rcode="NOERROR" rd="1" tc="0" /> <question name="google.de." class="IN" type="AAAA" /> </data></opt>
Wenn bei der Verarbeitung ein Fehler auftritt, antwortet die API mit einer entsprechenden Fehlermeldung:
{ "errid" : 224, "errkey" : "domainname", "errmsg" : "Invalid domainname", "errvalue" : "googlede", "status" : -1, "timestamp" : 1562616234 }
errid=224 errkey=domainname errmsg=Invalid domainname errvalue=googlede status=-1 timestamp=1562616234
errid=224&errkey=domainname&errmsg=Invalid%20domainname&errvalue=googlede&status=-1&timestamp=1562616234
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <opt errid="224" errkey="domainname" errmsg="Invalid domainname" errvalue="googlede" status="-1" timestamp="1562616234" />
Erklärung der data-Informationen
Die abgefragten DNS-Informationen werden von der API in den folgenden Hashes gebündelt:
- answer
- authority
- environment
- header
- question
In environment finden Sie Angaben zur aktuellen Abfrage, in environment.text ist eine dem dig-Kommando nachempfundene Textausgabe enthalten. In den übrigen Hashes finden Sie die jeweiligen DNS-Informationen.
Beispiel-Aufrufe und -Antworten
Quellen / Anbieter
Vergleichbare API-actions
- net - Tools und Funktionen für LAN und das Internet
- Info-Module - In Info-Modulen sind Tools und Infos gebündelt. Sehen Sie hier eine Übersicht aller Info-Module.
Aktueller Status
-
Level:Info-Module mit dem Status @lpha sind neu und noch nicht ausgiebig getestet. Produktive Anbindungen dieser action werden _nicht_ empfohlen! Feedback, Bugmeldungen und Verbesserungsvorschläge sind dagegen herzlich willkommen!
-
Credits pro Aufruf:0.001
-
Letzte Änderung:Noch keine Änderung