in reply to problem querying TLD nameserver with Net::DNS::Resolver
#!/usr/local/bin/perl use strict; use warnings; use Net::DNS; use Net::DNS::Resolver::Recurse; check_domain(@ARGV); exit; sub check_domain { my ( $domain, $class ) = @_; $class ||= "IN"; print "-" x 70, "\n"; print "$domain (class $class)\n"; print "\n"; my $res = Net::DNS::Resolver::Recurse->new( timeout => 120, recurse => 1, debug => 1, ); $res->defnames(0); $res->retry(2); my $nspack = $res->query( $domain, "NS", $class ); unless ( defined($nspack) ) { warn "Couldn't find nameservers for $domain: ", $res->errorstr +ing, "\n"; return; } print "nameservers (will request zone from first available):\n"; my $ns; foreach $ns ( grep { $_->type eq "NS" } $nspack->answer ) { print "\t", $ns->nsdname, "\n"; } print "\n"; $res->recursion_callback( sub { my $packet = shift; $_->print for $packet->additional; printf( ";; Received %d bytes from %s\n\n", $packet->answersize, $packet->answerfrom ); } ); $res->query_dorecursion(@ARGV); } exit;
|
|---|