#!/usr/bin/env perl
use strict;
use warnings;
use Net::DNS::Resolver;
my $l_ip = '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 $l_dns_name = $l_ip;
my $l_dns = Net::DNS::Resolver->new( nameservers => \@nameservers );
my $l_response = $l_dns->query($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->name();
last;
}
}
} else {
print $l_dns->errorstring, "\n";
}
####
251.34.92.216.in-addr.arpa. 6883 IN PTR perlmonks.org.
####
#!/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;
}
####
Got: PTR -> 251.34.92.216.in-addr.arpa
Got name perlmonks.org