NAME
Mojo::Resolver - Async IO DNS Resolver
SYNOPSIS
use Mojo::Resolver;
DESCRIPTION
Mojo::Resolver is a minimalistic async io stub resolver. Note that this module is EXPERIMENTAL and might change without warning!
ATTRIBUTES
Mojo::Resolver implements the following attributes.
ioloop
my $ioloop = $resolver->ioloop;
$resolver = $resolver->ioloop(Mojo::IOLoop->new);
Loop object to use for io operations, by default a Mojo::IOLoop object will be used.
timeout
my $timeout = $resolver->timeout;
$resolver = $resolver->timeout(5);
Maximum time in seconds a DNS
lookup can take, defaults to 3
.
METHODS
Mojo::Resolver inherits all methods from Mojo::Base and implements the following new ones.
servers
my @all = $resolver->servers;
my $current = $resolver->servers;
$resolver = $resolver->servers('8.8.8.8', '8.8.4.4');
IP addresses of DNS
servers used for lookups, defaults to the value of MOJO_DNS_SERVER
, auto detection, 8.8.8.8
or 8.8.4.4
.
lookup
$resolver = $resolver->lookup('mojolicio.us' => sub {...});
Lookup IPv4
or IPv6
address for domain.
$resolver->lookup('mojolicio.us' => sub {
my ($loop, $address) = @_;
print "Address: $address\n";
Mojo::IOLoop->stop;
});
Mojo::IOLoop->start;
resolve
$resolver = $resolver->resolve('mojolicio.us', 'A', sub {...});
Resolve domain into A
, AAAA
, CNAME
, MX
, NS
, PTR
or TXT
records, *
will query for all at once. Since this is a "stub resolver" it depends on a recursive name server for DNS resolution.
DEBUGGING
You can set the MOJO_RESOLVER_DEBUG
environment variable to get some advanced diagnostics information printed to STDERR
.
MOJO_RESOLVER_DEBUG=1