Mojo::IOLoop::ResolverUser Contributed Perl DocumentaMojo::IOLoop::Resolver(3)NAMEMojo::IOLoop::Resolver - IOLoop DNS Stub Resolver
SYNOPSIS
use Mojo::IOLoop::Resolver;
# Lookup address
my $resolver = Mojo::IOLoop::Resolver->new;
$resolver->lookup('mojolicio.us' => sub {
my ($self, $address) = @_;
...
});
# Resolve "MX" records
$resolver->resolve('mojolicio.us', 'MX', sub {
my ($self, $records) = @_;
...
});
DESCRIPTIONMojo::IOLoop::Resolver is a minimalistic non-blocking I/O DNS stub
resolver used by <Mojo:IOLoop>. Note that this module is EXPERIMENTAL
and might change without warning!
ATTRIBUTESMojo::IOLoop::Resolver implements the following attributes.
"ioloop"
my $ioloop = $resolver->ioloop;
$resolver = $resolver->ioloop(Mojo::IOLoop->new);
Loop object to use for I/O operations, defaults to a Mojo::IOLoop
object.
"timeout"
my $timeout = $resolver->timeout;
$resolver = $resolver->timeout(5);
Maximum time in seconds a "DNS" lookup can take, defaults to 3.
METHODSMojo::IOLoop::Resolver inherits all methods from Mojo::Base and
implements the following new ones.
"is_ipv4"
my $is_ipv4 = $resolver->is_ipv4('127.0.0.1');
Check if value is a valid "IPv4" address.
"is_ipv6"
my $is_ipv6 = $resolver->is_ipv6('::1');
Check if value is a valid "IPv6" address.
"lookup"
$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->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.
"servers"
my @all = $resolver->servers;
my $current = $resolver->servers;
$resolver->servers('8.8.8.8', '8.8.4.4');
IP addresses of "DNS" servers used for lookups, defaults to the value
of the "MOJO_DNS_SERVER" environment variable, auto detection, 8.8.8.8
or 8.8.4.4.
DEBUGGING
You can set the "MOJO_RESOLVER_DEBUG" environment variable to get some
advanced diagnostics information printed to "STDERR".
MOJO_RESOLVER_DEBUG=1
SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.
perl v5.14.1 2011-09-13 Mojo::IOLoop::Resolver(3)