#!/usr/bin/env perl use strict; use warnings; use Net::DNS::Resolver; my $destip = '216.92.34.251'; # one of the perlmonks.org servers my @nameservers = qw[8.8.8.8 8.8.4.4]; # Googles DNS Servers my $ptr = getHostname($destip, \@nameservers, 'PTR'); print "Got name $ptr\n"; sub getHostname { my ($l_ip, $nameservers, $recordtype) = @_; my $l_dns_name = $l_ip; my $l_dns = Net::DNS::Resolver->new( nameservers => \@nameservers, $recordtype ); my $l_response = $l_dns->query($l_ip); if(!defined($l_response)) { print "Error: Got no response\n"; return $l_ip; } if($l_dns->errorstring eq 'NOERROR') { my $l_record; foreach $l_record ($l_response->answer()) { print 'Got: ', $l_record->type(), ' -> ', $l_record->name(), "\n"; if($l_record->type() eq 'PTR') { $l_dns_name = $l_record->ptrdname(); #$l_dns_name = $l_record->address(); last; } } } else { print $l_dns->errorstring, "\n"; } return $l_dns_name; }