sub getptr {
   my ($addr, $time, $s, $sel);
   $addr = shift;
   $time = 5;
   dprint "h";

   $res = new Net::DNS::Resolver;
 
   $s = $res->bgsend($addr);
   $sel = new IO::Select($s);
   @ready = $sel->can_read($time);

   if (@ready) { # we got a successful result
       dprint "s";
       $sel->remove($s);
       undef $s;

       $q = $res->search($addr);
       if ($q) {
           dprint "L";
           foreach $rr ($q->answer) {
               next unless $rr->type eq "PTR";
               return $rr->ptrdname;
           }
       } else {
           dprint "x";
           return '';
       }
   } else {      # we timed out
       dprint "S";
       $sel->remove($s);
       undef $s;
       dprint "x";
       return '';
   }
}

