NAME
   Net::DNS::Paranoid - paranoid dns resolver

SYNOPSIS
       my $dns = Net::DNS::Paranoid->new();
       $dns->blocked_hosts([
           'mixi.jp',
           qr{\.dev\.example\.com$},
       ]);
       $dns->whitelisted_hosts([
           'twitter.com',
       ]);
       my ($addrs, $errmsg) = $dns->resolve('mixi.jp');
       if ($addrs) {
           print @$addrs, $/;
       } else {
           die $errmsg;
       }

DESCRIPTION
   This is a wrapper module for Net::DNS.

   This module detects IP address / host names for internal servers.

METHODS
   my $dns = Net::DNS::Paranoid->new(%args)
       Create new instance with following parameters:

       timeout
           DNS lookup timeout in secs.

           Default: 15 sec.

       blocked_hosts: ArrayRef[Str|RegExp|Code]
           List of blocked hosts in string, regexp or coderef.

       whitelisted_hosts: ArrayRef[Str|RegExp|Code]
           List of white listed hosts in string, regexp or coderef.

       resolver: Net::DNS::Resolver
           DNS resolver object, have same interface as Net::DNS::Resolver.

   my ($addrs, $err) = $dns->resolve($name[, $start_time[, $timeout]])
       Resolve a host name using DNS. If it's bad host, then returns $addrs
       as undef, and $err is the reason in string.

       $start_time is a time to start your operation. Timeout value was
       counted from it. Default value is time().

       $timeout is a timeout value. Default value is "$dns-"timeout>.

USE WITH Furl
   You can use Net::DNS::Paranoid with Furl!

       use Furl::HTTP;
       use Net::DNS::Paranoid;

       my $resolver = Net::DNS::Paranoid->new();
       my $furl = Furl->new(
           inet_aton => sub {
               my ($host, $errmsg) = $resolver->resolve($_[0], time(), $_[1]);
               die $errmsg unless $host;
               Socket::inet_aton($host->[0]);
           }
       );

USE WITH LWP
   I shipped LWPx::ParanoidHandler to wrap this module. Please use it.

THANKS TO
   Most of code was taken from LWPx::ParanoidAgent.

AUTHOR
   Tokuhiro Matsuno < tokuhirom @A gmail DOT. com>

LICENSE
   Copyright (C) Tokuhiro Matsuno

   This library is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.