my $dns = new Net::DNS::Resolver; $dns->tcp_timeout( 1 ); $dns->udp_timeout( 1 ); my $my_file = $ARGV[0]; open(INFILE, $my_file) || die ("I refuse to open your file!"); my @my_data=; close(INFILE); foreach my $line(@my_data) { ## Parse the file chop($line); my ($number,$domain)=split(/,/,$line); testDns($number,$domain,$dns); } sub testDns { my ($line_number, $domain_to_test, $default_resolver) = @_; my $ns = $default_resolver->query( $domain_to_test, 'NS' ); if ($ns) { foreach my $rr ($ns->answer) { if ($rr->type eq "NS") { my @auth_nameservers = $rr->nsdname; foreach my $auth_nameserver (@auth_nameservers) { print "$line_number,$domain_to_test,$auth_nameserver\n"; } } } else { print "$line_number,$domain_to_test,error\n"; } }