Re: DNS-Frage: welche TLD existiert?
Hallo,
Am Thu, 29 Nov 2012, Andre Tann schrieb:
>Servus zusammen,
>
>kurz eine Frage zum DNS: wie kann man herausbekommen, ob eine TLD
>existiert?
>
>TLD .net.:
>===schnipp
>$ dig @i.root-servers.net. net. ns
>[...]
>;; QUESTION SECTION:
>;net. IN NS
>
>;; AUTHORITY SECTION:
>net. 172800 IN NS j.gtld-servers.net.
>[...]
>;; ADDITIONAL SECTION:
>a.gtld-servers.net. 172800 IN A 192.5.6.30
>[...]
>===schnipp
>
>
>Aber TLD .abcdef.:
>===schnipp
>$ dig @i.root-servers.net. abcdef. ns
>[...]
>;; QUESTION SECTION:
>;abcdef. IN NS
>
>;; AUTHORITY SECTION:
>. 86400 IN SOA a.root-servers.net.
>nstld.verisign-grs.com. 2012112900 1800 900 604800 86400
>===schnipp
>
>Hier habe ich jetzt keine ADDITIONAL SECTION, aber sonst unterscheiden
>sich die Antworten im Prinzip nicht. Woraus ergibt sich denn jetzt, daß
>.abcdef. nicht existent ist?
Neben dem nebenan schon genannten "NXDOMAIN", beachte auch bei
net. bekommst du ein NS mit der angefragten TLD
;; AUTHORITY SECTION:
net. 172800 IN NS j.gtld-servers.net.
bei abcdef. nur ein SOA für die root-domain ".":
;; AUTHORITY SECTION:
. 86400 IN SOA a.root-servers.net.
Alternativ:
$ dig net. soa
[..]
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47420
;; ANSWER SECTION:
net. 900 IN SOA a.gtld-servers.net [..]
[..]
vs.
$ dig abcdef. soa
[..]
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 58204
[..]
;; AUTHORITY SECTION:
. 86400 IN SOA a.root-servers.net
[..]
In nem Script könntest du z.B. | awk '$4 ~ /SOA/{print $1;}'
verwenden, oder besser gleich noch den dig-Aufruf ins awk reinziehen:
==== digtld.awk
#!/usr/bin/gawk -f
BEGIN {
if(!ARGV[1]) {
print "Usage: digtld.awk TLD" >"/dev/stderr";
exit(1);
}
TLD = ARGV[1] ".";
gsub("\\.\\.", ".", TLD);
dig="dig " TLD " soa";
while( dig | getline ) {
if( $4 ~ /SOA/ ) { ANS = $0; rettld = $1; }
}
if(TLD != rettld) {
print "NXTLD" >"/dev/stderr";
} else {
print ANS;
}
}
====
HTH,
-dnh
--
Kiss me twice. I'm schizophrenic.
-- from the BSD fortune file
Reply to: