use Net::DNS; my $res = Net::DNS::Resolver->new(debug=>0, igntc=>1, recurse=>1, retrans=>0, retry=>1); $res->port($nameserverport); $res->nameservers("$nameserver"); $res->usevc(1); $res->tcp_timeout($timeout); $res->srcaddr($srcaddr); $res->srcport($srcport); my %result_set = (); my $ttl = 0x7fffffff; #Query type is "A" ,"MX" ,"CNAME" my $query = Net::DNS::Packet->new($address, "A"); my $response = $res->send($query); if ($response->header->ancount > 0) { foreach my $rr ($response->answer) { my $rr_addr; if ($rr->type eq $querytype && $querytype eq "A"){ $rr_addr = $rr->address; } if ($rr_addr) { $result_set->{$rr_addr} = 1; push(@result, $rr_addr); $ttl = $rr->ttl unless ($ttl < $rr->ttl); } } }