interesting! i took a different approach to this issue quite a while
ago, using dns/debug. this approach should work assuming that it is
run often enough to prevent dropping of old ip addresses between runs.
- erik
#!/bin/rc
rfork en
aserver=a.root-servers.net
letters=(a b c d e f g h i j k l m)
fn fatal {
echo $*>[1=2]
exit fatal
}
fn get{
ndb/dnsdebug @$aserver $* | awk '
$1=="answer" && $(NF-2) == "negative" {next}
$1=="answer" {printf "dom=%s %s=%s\n", $2, $(NF-1), $NF}
'
}
aserver = `{get a.root-servers.net|sed 's/.*=//g'}
if(~ $#aserver 0)
fatal cant find a.root-servers.net
{
echo '#'
echo '# entries defining the dns root. these will be overridden by
any'
echo '# authentic info obtained from the root.'
echo '#'
echo 'dom='
for(letter in $letters)
echo ' ns='^$letter^'.root-servers.net'
for(letter in $letters)
get $letter^.root-servers.net ip
{
for(letter in $letters){
get $letter^.root-servers.net ipv6
}
} | sed 's/^/# /g'
}