NAME

Haineko::DNS - Tiny resolver class

DESCRIPTION

Haineko::DNS provide methods for resolving internet domain such as A, MX, NS, and TXT resource record.

SYNOPSIS

use Haineko::DNS;
my $e = Haineko::DNS->new('example.org');   # Target domain name is example.org
my $v = $e->resolve('a');                   # Resolve A resource record

CLASS METHODS

new( Domain Name )

new() is a constructor of Haineko::DNS

use Haineko::DNS;
my $e = Haineko::DNS->new('example.org');
map { $e->resolve( $_ ) } ( qw|a mx ns txt| );

warn Data::Dumper::Dumper $e;
$VAR1 = bless( {
             'NS' => [
                       {
                         'exp' => 1384606375,
                         'p' => 0,
                         'ttl' => 72657,
                         'rr' => 'a.iana-servers.net'
                       },
                       {
                         'exp' => 1384606375,
                         'p' => 0,
                         'ttl' => 72657,
                         'rr' => 'b.iana-servers.net'
                       }
                     ],
             'MX' => [],
             'A' => [
                      {
                        'exp' => 1384572613,
                        'p' => 0,
                        'ttl' => 38895,
                        'rr' => '93.184.216.119'
                      }
                    ],
             'name' => 'example.org',
             'TXT' => [
                        {
                          'exp' => 1384533778,
                          'p' => 0,
                          'ttl' => 60,
                          'rr' => 'v=spf1 -all'
                        },
                        {
                          'exp' => 1384533778,
                          'p' => 0,
                          'ttl' => 60,
                          'rr' => '$Id: example.org 1924 2013-10-21 04:00:42Z dknight $'
                        }
                      ]
           }, 'Haineko::DNS' );

INSTANCE METHODS

resolve(Type)

resolve() set resource records of specified type into the object .

use Haineko::DNS;
my $e = Haineko::DNS->new('example.org');
my $v = $e->arr;
my $w = $e->mxrr;

print for @$v;      # 93.184.216.119
print for @$w;      # 

rr(Type)

rr() returns the list of resource records as an array reference

use Haineko::DNS;
my $e = Haineko::DNS->new('gmail.com');
my $v = $e->rr('MX');

print for @$v;  # gmail-smtp-in.l.google.com,alt1.gmail-smtp-in.l.google.com,
                # alt2.gmail-smtp-in.l.google.com,alt3.gmail-smtp-in.l.google.com,
                # alt4.gmail-smtp-in.l.google.com

$e = Haineko::DNS->new('perl.org');
$v = $e->rr('A');
print for @$v;  # 207.171.7.53, 207.171.7.43

arr()

arr() is an alias for rr('A');

mxrr()

mxrr() is an alias for rr('MX');

nsrr()

nsrr() is an alias for rr('NS');

txtrr()

txtrr() is an alias for rr('TXT');

REPOSITORY

https://github.com/azumakuniyuki/Haineko

AUTHOR

azumakuniyuki <perl.org [at] azumakuniyuki.org>

LICENSE

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