[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: