4.4BSD/usr/src/contrib/bind-4.9/contrib/doc-2.0/doc4.awk

#
# doc4.awk
#
#      Distributed with:  Doc - Version 2.0 (8/22/90)
#      USC Information Sciences Institute
#
#
# Accepts as input, output from dig querying for NS records of a
# domain.  Expects input to include TTLs and to be all lower case.
# Also expect to get address of these nameservers in the Additional
# section.
#
# Ouput a list of internet dot-notion addresses of nameservers
# for domain. Only does so if domain name of server is in domain.
# i.e. vax.darpa.mil. is a nameserver for isi.edu., but we are
#      not interested in addresses not on isi networks
#
# Currently, if more than one address (of some server) are on the
# same network (subnets not recognized), only one is printed.
# Arguably for completeness, all address should be printed.
#
# Intended use: targets for queries to check for presence of
# in-addr.arpa mappings for domain.
#

BEGIN {n=0}

## Find domain being tested (will be NS record for it)

$4 == "ns" {
  ns = $1;
}

##
## Look at A records, presumably Additional answers
## for addresses of nameservers.
##

$4 == "a" && ns != "" {
    if (index($1,ns) > 0) {      ## is server name in domain ?
       split($5, dd, ".");
       if (dd[1] < 127) {
          ii = dd[1];
       } else if (dd[1] < 192) {
          ii = dd[1] dd[2];
       } else {
          ii = dd[1] dd[2] dd[3];
       }
#       print "DDT", ii, hnet[ii], $5
       if (hnet[ii] == "") {
          hnet[ii] = $5;
#          print "DDT:" , $0
          print $5;
        }
      }
}