NAME¶
Net::DRI - Interface to Domain Name Registries/Registrars/Resellers
VERSION¶
This documentation refers to Net::DRI version 0.95
SYNOPSIS¶
use Net::DRI;
my $dri=Net::DRI->new({ cache_ttl => 10, trid_factory => ..., logging => .... });
... various operations ...
$dri->end();
DESCRIPTION¶
Net::DRI is a Perl library to access services offered by domain name providers,
such as registries or registrars. DRI stands for Domain Registration Interface
and it aims to be for domain name registries/registrars/resellers what DBI is
for databases: an abstraction over multiple providers, with multiple policies,
transports and protocols all used through a uniform API.
It is an object-oriented framework implementing RRP (RFC 2832/3632), EPP (core
EPP in RFC 5730/5731/5732/5733/5734 aka STD69, extensions in RFC
3915/4114/4310/5076 and various extensions of ccTLDs/gTLDs - currently more
than 30 TLDs are directly supported with extensions), RRI (.DE registration
protocol), Whois, DAS (Domain Availability Service used by .BE, .EU, .AU,
.NL), IRIS (RFC3981) DCHK (RFC5144) over LWZ (RFC4993) for .DE currently and
XCP (RFC4992), .FR/.RE email and webservices interface, and resellers
interface of some registrars (Gandi, OpenSRS, etc.). It has transports for
connecting with UDP/TCP/TLS, HTTP/HTTPS, Web Services (XML-RPC and SOAP
with/without WSDL), or SMTP-based registries/registrars.
It is not limited to handling of domain names, it can be easily extended. For
example, it supports ENUM registrations and validations, or DNSSEC
provisioning.
A shell is included for easy prototyping and debugging, see Net::DRI::Shell.
Caching and logging features are also included by default.
Please see the included README file for full details.
EXAMPLES¶
Please see the "eg/" subdirectory of the distribution, it contains
various examples. Please also see all unit tests under "t/", they
show all parts of the API.
SUBROUTINES/METHODS¶
After having used Net::DRI (which is the only module you should need to
"use" from this distribution), you create an object as instance of
this class, and every operation will be carried through it.
trid_factory()¶
This is an accessor to the trid factory (code reference) used to generate client
transaction identificators, that are useful for logging and asynchronous
operations.
During the "new()" call, a "trid_factory()" is initialized
to a default safe value (being Net::DRI::Util::create_trid_1).
You need to call this method only if you wish to use another function to
generate transaction identificators.
All other objects (registry profiles and transports) created after that will
inherit this value. If you call again "trid_factory()" the change
will only apply to new objects (registry profiles and transports) created
after the change, it will not apply to already existing objects (registry
profiles and transports).
logging()¶
This is an accessor to the underlying Logging object. During the
"new()" call you can provide the object, or just a string
("null", "stderr", "files" or "syslog"
which are the current logging modules available in Net::DRI), or a reference
to an array with the first parameter a string (same as previously) and the
second parameter a reference to an hash with data needed by the logging class
used (see for example Net::DRI::Logging::Files).
If you want to log the application data (what is exchanged with remote server,
such as EPP XML streams), you need to use logging level of 'notice', or
higher.
cache()¶
This is an accessor to the underlying Cache object. See Net::DRI::Cache. This
object has a "ttl()" method to access and change the current time to
live for cached data.
SUPPORT¶
For now, support questions should be sent to:
<netdri@dotandco.com>
Please also see the SUPPORT file in the distribution.
SEE ALSO¶
<
http://www.dotandco.com/services/software/Net-DRI/>
AUTHOR¶
Patrick Mevzek, <netdri@dotandco.com> and various contributors (see
Changes file and web page above)
COPYRIGHT¶
Copyright (c) 2005-2010 Patrick Mevzek <netdri@dotandco.com>. All rights
reserved.
LICENSE¶
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
See the LICENSE file that comes with this distribution for more details.