Net::DNS::Resolver::Programmable man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

Net::DNS::Resolver::PrUsermContributed PerlNet::DNS::Resolver::Programmable(3)

NAME
       Net::DNS::Resolver::Programmable - programmable DNS resolver class for
       offline emulation of DNS

VERSION
       0.003

SYNOPSIS
	   use Net::DNS::Resolver::Programmable;
	   use Net::DNS::RR;

	   my $resolver = Net::DNS::Resolver::Programmable->new(
	       records	       => {
		   'example.com'     => [
		       Net::DNS::RR->new('example.com.	   NS  ns.example.org.'),
		       Net::DNS::RR->new('example.com.	   A   192.168.0.1')
		   ],
		   'ns.example.org'  => [
		       Net::DNS::RR->new('ns.example.org.  A   192.168.1.1')
		   ]
	       },

	       resolver_code   => sub {
		   my ($domain, $rr_type, $class) = @_;
		   ...
		   return ($result, $aa, @rrs);
	       }
	   );

DESCRIPTION
       Net::DNS::Resolver::Programmable is a Net::DNS::Resolver descendant
       class that allows a virtual DNS to be emulated instead of querying the
       real DNS.  A set of static DNS records may be supplied, or arbitrary
       code may be specified as a means for retrieving DNS records, or even
       generating them on the fly.

   Constructor
       The following constructor is provided:

       new(%options): returns Net::DNS::Resolver::Programmable
	   Creates a new programmed DNS resolver object.

	   %options is a list of key/value pairs representing any of the
	   following options:

	   records
	       A reference to a hash of arrays containing a static set of
	       Net::DNS::RR objects.  The hash entries must be indexed by
	       fully qualified domain names (lower-case, without any trailing
	       dots), and the entries themselves must be arrays of the RR
	       objects pertaining to these domain names.  For example:

		   records => {
		       'example.com'	 => [
			   Net::DNS::RR->new('example.com.     NS  ns.example.org.'),
			   Net::DNS::RR->new('example.com.     A   192.168.0.1')
		       ],
		       'www.example.com' => [
			   Net::DNS::RR->new('www.example.com. A   192.168.0.2')
		       ],
		       'ns.example.org'	 => [
			   Net::DNS::RR->new('ns.example.org.  A   192.168.1.1')
		       ]
		   }

	       If this option is specified, the resolver retrieves requested
	       RRs from this data structure.

	   resolver_code
	       A code reference used as a call-back for dynamically retrieving
	       requested RRs.

	       The code must take the following query parameters as arguments:
	       the domain, RR type, and class.

	       It must return a list composed of: the response's RCODE (by
	       name, as returned by Net::DNS::Header->rcode), the "aa"
	       (authoritative answer) flag (boolean, use undef if you don't
	       care), and the Net::DNS::RR answer objects.  If an error string
	       is returned instead of a valid RCODE, a Net::DNS::Packet object
	       is not constructed but an error condition for the resolver is
	       signaled instead.

	       For example:

		   resolver_code => sub {
		       my ($domain, $rr_type, $class) = @_;
		       ...
		       return ($result, $aa, @rrs);
		   }

	       If both this and the "records" option are specified, then
	       statically programmed records are used in addition to any that
	       are returned by the configured resolver code.

	   defnames
	   dnsrch
	   domain
	   searchlist
	   debug
	       These Net::DNS::Resolver options are also meaningful with
	       Net::DNS::Resolver::Programmable.  See Net::DNS::Resolver for
	       their descriptions.

   Instance methods
       The following instance methods of Net::DNS::Resolver are also supported
       by Net::DNS::Resolver::Programmable:

       search: returns Net::DNS::Packet
       query: returns Net::DNS::Packet
       send: returns Net::DNS::Packet
	   Performs an offline DNS query, using the statically programmed DNS
	   RRs and/or the configured dynamic resolver code.  See the "new"
	   constructor's "records" and "resolver_code" options.	 See the
	   descriptions of search, query, and send for details about the
	   calling syntax of these methods.

       print
       string: returns string
       searchlist: returns list of string
       defnames: returns boolean
       dnsrch: returns boolean
       debug: returns boolean
       errorstring: returns string
       answerfrom: returns string
       answersize: returns integer
	   See "METHODS" in Net::DNS::Resolver.

       Currently the following methods of Net::DNS::Resolver are not
       supported: axfr, axfr_start, axfr_next, nameservers, port, srcport,
       srcaddr, bgsend, bgread, bgisready, tsig, retrans, retry, recurse,
       usevc, tcp_timeout, udp_timeout, persistent_tcp, persistent_udp, igntc,
       dnssec, cdflag, udppacketsize.  The effects of using these on
       Net::DNS::Resolver::Programmable objects are undefined.

SEE ALSO
       Net::DNS::Resolver

       For availability, support, and license information, see the README file
       included with Net::DNS::Resolver::Programmable.

AUTHORS
       Julian Mehnle <julian@mehnle.net>

perl v5.16.2			  2013-08-2Net::DNS::Resolver::Programmable(3)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net