++ed by:
XYF THALJEF MMUSGROVE FILIN DGINEV

122 PAUSE users
153 non-PAUSE users.

Sebastian Riedel

NAME

Mojo::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) = @_;
    ...
  });

DESCRIPTION

Mojo::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!

ATTRIBUTES

Mojo::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.

METHODS

Mojo::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.