Shane Kerr <sh...@time-travellers.org> wrote:
>
> Your list is missing bf., which does not appear to have any IPv6 name
> servers right now.

My copy of the root zone has the following:

bf.                     172800  IN      NS      ns-bf.afrinic.net.
ns-bf.afrinic.net.      172800  IN      AAAA    2001:43f8:120::34

> I'm not sure what your methodology is exactly,

As I said, quick :-)

#!/usr/bin/perl

use warnings;
use strict;

my %v4;
my %v6;
my %ns;
my %z;
for my $rr (qx(dig axfr .)) {
        next unless $rr =~ m{^(\S+)\s+\d+\s+IN\s+(A|AAAA|NS)\s+(\S+)$};
        if ($2 eq 'NS') {
                $z{$1}{$3} = 1;
                $ns{$3} = 1;
        } elsif ($2 eq 'A') {
                $v4{$1} = 1;
        } else {
                $v6{$1} = 1;
        }
}

my @v4 = keys %v4;
my @v6 = keys %v6;

my %v4only = %v4; delete @v4only{@v6};
my %v6only = %v6; delete @v6only{@v4};

printf "zones %d\n", scalar keys %z;
printf "servers %d\n", scalar keys %ns;
printf "v4 %d\n", scalar @v4;
printf "v6 %d\n", scalar @v6;
printf "v4 only %d\n", scalar keys %v4only;
printf "v6 only %d\n", scalar keys %v6only;

print "v6-only servers\n";
print map "$_\n", keys %v6only;

print "v4-only TLDs\n";
my $n = 0;
for my $z (sort keys %z) {
        my $v4;
        my $v6;
        for my $ns (keys %{$z{$z}}) {
                $v4 = 1 if $v4{$ns};
                $v6 = 1 if $v6{$ns};
        }
        print "$z\n" unless $v6;
        ++$n unless $v6;
}
print "v4-only TLDs $n\n";

exit;

Tony.
-- 
f.anthony.n.finch  <d...@dotat.at>  http://dotat.at/  -  I xn--zr8h punycode
East Forties: Cyclonic, mainly westerly, veering northerly, 5 to 7, increasing
gale 8 at times. Moderate or rough. Rain then squally showers. Moderate or
good.

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to