NAME
Net::Nslookup - Provide nslookup(1)-like capabilities
SYNOPSIS
use Net::Nslookup;
my @addrs = nslookup $host;
my @mx = nslookup(qtype => "MX", domain => "perl.org");
DESCRIPTION
Net::Nslookup provides the capabilities of the standard UNIX command line tool nslookup(1). Net::DNS is a wonderful and full featured module, but quite often, all you need is `nslookup $host`. This module provides that functionality.
Net::Nslookup exports a single function, called nslookup
. nslookup
can be used to retrieve A, PTR, CNAME, MX, and NS records.
my $a = nslookup(host => "use.perl.org", type => "A");
my @mx = nslookup(domain => "perl.org", type => "MX");
my @ns = nslookup(domain => "perl.org", type => "NS");
my $name = nslookup(host => "206.33.105.41", type => "PTR");
nslookup
takes a hash of options, one of which should be term, and performs a DNS lookup on that term. The type of lookup is determined by the type (or qtype) argument. If server is specified (it should be an IP address, or a reference to an array of IP addresses), that server will be used for lookups.
If only a single argument is passed in, the type defaults to A, that is, a normal A record lookup. This form is significantly faster than using the full version, as it doesn't load Net::DNS for this.
If nslookup
is called in a list context, and there is more than one address, an array is returned. If nslookup
is called in a scalar context, and there is more than one address, nslookup
returns the first address. If there is only one address returned (as is usually the case), then, naturally, it will be the only one returned, regardless of the calling context.
domain and host are synonyms for term, and can be used to make client code more readable. For example, use domain when getting NS records, and use host for A records; both do the same thing.
server should be a single IP address or a reference to an array of IP addresses:
my @a = nslookup(host => 'boston.com', server => '4.2.2.1');
my @a = nslookup(host => 'boston.com', server => [ '4.2.2.1', '128.103.1.1' ])
By default, nslookup
returns addresses when looking up MX records; however, the Unix tool nslookup
returns names. Set $Net::Nslookup::MX_IS_NUMERIC to a true value to have MX lookups return numbers instead of names. This is a change in behavior from previous versions of Net::Nslookup
, and is more consistent with other DNS tools.
TIMEOUTS
Lookups timeout after $Net::Nslookup::TIMEOUT seconds (default 15). Set this to something more reasonable for your site or script.
DEBUGGING
Set $Net::Nslookup::DEBUG to a true value to get debugging messages carped to STDERR.
Set $Net::Nslookup::DEBUG_NET_DNS to a true value to put Net::DNS into debug mode.
TODO
Support for TXT and SOA records.
AUTHOR
darren chamberlain <darren@cpan.org>