#!/usr/bin/perl -T use strict; use warnings; # $Id; $ use Net::DNS; my $res = Net::DNS::Resolver->new(); $res->recurse(1); $res->retry(1); $res->persistent_udp(1); while ( defined(my $line=<>) ) { chomp $line; ptr_query($line); } sub ptr_query { my $addr = shift; my $query = $res->send( $addr, 'PTR', 'IN' ); my $found = 0; if ( !$query || $query->header->ancount == 0 ) { print "$addr|n/a\n"; return; } my @answer = $query->answer; for my $rr (@answer) { next if $rr->type ne 'PTR'; $found++; print "$addr|" . $rr->rdatastr . "\n"; } if (!$answer_found) { print "$addr|n/a\n"; } return; }