Dot and Co

Solutions for Internet Naming

The Company and its Services

Menu

Skip navigation links

Dot and Co

Services

Past, Present, Future

News on Domain Names

[What is it ?]

Net::DRI, a free software Domain Name Registration Interface

Jump directly to goals, what’s available, use, features of Net::DRI, join development or ask for a specific need, redistribute Net::DRI when you are a provider, see everything about support and bug reports, or download Net::DRI.

Dot and Co specializes in technical solutions and advices for domain name registries, registrars, resellers, webhosting companies, and all providers and clients. Among all solutions we provide, a key piece is to be able to connect to registries and registrars: for that need we created Net::DRI which is a free software you can learn about on this page.

View a presentation (in English) about Net::DRI and EPP made during the ICANN Caïro meeting in november 2008 (with slight corrections since then): the presentation itself done with S5 which needs Javascript (press the space bar to go forward) or the presentation content without layout in PDF format.

Another presentation is also available, in French only, an introduction to Net::DRI during the French Perl Workshop in June 2009 : the presentation (with S5, see above) or the presentation content without layout in PDF format.

Net::DRI goals

Net::DRI is a collection of object oriented Perl modules that provides an abstract and uniform interface to connect to domain name providers, either registries, registrars or an entity at another level. Thus Net::DRI can be used by a registrar to establish connections with various registries, or by a reseller that needs to connect with its registrar, or by an end client that needs to connect with its provider, be it a registrar or not, without being forced to use the specific interface available from the provider!

Net::DRI can then allow access to features that were not even available in the native provider interface, such as batch processing. Furthermore, by hiding differences between providers' interfaces, an application using Net::DRI for its connections will almost not have to be changed if there is a need to change providers, or if one provider changes the way it operates (new interface, other protocols, and so on...). With this solution, it is easy to adapt to political or technical changes of its registration providers.

Net::DRI implements many transports and protocols: this allows to take into account specifics of various providers. It is an open framework, and it is easy to add new providers, protocols and transports; it also allows to easily handle cases close to a standard but with few differences. Net::DRI handles synchronous providers (ex: through a web site, the answer comes immediately) as well as asynchronous ones (ex: by email, the answer can come many hours after the request).

Net::DRI can handle many providers simultaneously, even if they offer services in the same domain names, through as many simultaneous connections as needed with various protocols and/or transports for the same provider.

Net::DRI implements RRP and EPP, which are two IETF standards. It is the only independant and free implementation of these two standards. Everywhere it is possible, Net::DRI standardizes on EPP (for example for return status codes) by translating other cases to EPP.

Net::DRI participates in EPP standardization work inside IETF through interoperability tests: http://www.ietf.org/iesg/implementation/report-rfc4930-4934.txt

Net::DRI also implements Whois (IETF standard), DAS (« Domain Availability Service ») and the IRIS set of protocols (IETF standards): results are available through the same interface as other operations.

Net::DRI already implements services of the future, such as ENUM, ENUM Validation or DNSSEC.

It is easy to use Net::DRI as it provides a command line shell so that you can leverage all Net::DRI power without having to write a single line of code !

In short

You are a domain name registry operator

You can redistribute Net::DRI (GPL license) and offer it to your clients, the domain name registrars, who will profit from a feature-rich toolkit working cross-registries enabling them to start doing business with you very fast. If support for your TLD is not already included in Net::DRI (see below), please help its development !

You are a domain name registrar

You need to deal with various registries, each one with a specific application interface or subtle differences from a standard like EPP. Net::DRI handles transparently multiple registries while giving access to an uniform interface, which enables you to add a new TLD to the list of your services very quickly and easily. If Net::DRI does not currently support the TLDs you are interested in or working with, please help us adding them !

You are client of a domain name registrar

After a lengthy selection process of a domain name registrar providing an API you could use from your own systems to connect to your provider systems, you still need to implement its proprietary and unique interface. If you later need to change the domain name registrar you are using, all your programming investment is lost and you need to begin again from scratch. With Net::DRI, you have access to a stable interface, hiding differences and pecularities of each domain name registrar, enabling you to easily change your provider at any time, and even to work with multiple domain name registrars at the same time ! And if Net::DRI does not currently support your domain name registrar of choice API, please help us to add it !

In all cases

You can use Net::DRI to make whois calls in various TLDs (see below), as well as DAS (Domain Availability Service) calls available for .BE .EU .TC .VG .GD .AU .NL domain names and IRIS DCHK (« Domain Availability Check for the Internet Registry Information Service ») calls available for .DE domain names.

Services currently implemented in Net::DRI

You will find in the below table all features of the latest Net::DRI version: on a green background, TLDs being fully supported for which interoperability has been tested by Dot and Co or other registrars, on an orange background, TLDs being partially supported or for which interoperability has not been tested, on a red background, TLDs with a minimal support and on a violet background TLDs planned in the future or for which work is ongoing.

TLDs/Providers available in Net::DRI
TLD or Provider Comments
.EU all operations supported including TLD extensions, for accredited registrars
.COM .NET .CC .TV
.ORG
.BIZ
.INFO
.MOBI
.COOP
.NAME
.TRAVEL
.CAT
.ASIA
.LU
.NU
.BE
.AU
.US
.DE
.CH
.LI
.HN
.SC
.VC
.AG
.BZ
.LC
.MN
.ME
.CZ
.PRO
.JOBS
.BR
CentralNIC
CoCCA
.SE all operations supported, including extensions, for accredited registrars ; interoperability tested by registry
.AT
.NO
.FR domain name check through web services and all operations through email or EPP by a registrar having a contract with AFNIC
IENUM +43 all operations supported, including extensions, for accredited registrars ; interoperability tested by registry
.WS all operations supported, like for any registry based on RRP ; interoperability not tested
.PL all operations supported excluding those related to future reservations ; interoperability not tested
.AERO all operations supported, including TLD extensions, for accredited registrars ; interoperability not tested
.PT
.SI
.MUSEUM all operations supported, like for any registry based on EPP, for accredited registrars ; interoperability not tested
.TEL
.TW
.CN
.IM
.CO.CZ
.IT
.UKall operations supported through EPP ; interoperability not tested
BookMyName (aka Free/ProXad/Dedibox/Online) retrieving the list of domain names, information on a domain name, or checking if a domain name exists through the web services API + DAS access
Gandi only retrieving the list of domain names, information on a domain name, or checking if a domain name exists through the web services API
OVH
AdamsNames (.TC .VG .GD) only retrieving information on a domain name through the web services API
OpenSRS almost all operations on domain names through the XCP over HTTPS API
.BE .EU .TV .VD .GD .AU .NLpublic DAS access
.COM .NET .ORG .BIZ .INFO .AERO .EU .MOBI .NAME .LU .WS .SE .CAT .AT .TRAVEL .US .PTpublic whois access
.DEpublic IRIS DCHK access

If you are a registry for which no interoperability has been tested, or a registrar accredited by such a registry, please contact us at netdri@dotandco.com to help conduct those tests.

Net::DRI use

Net::DRI is distributed as free software under the GPL license. You just need to download the complete source archive and complete the installation through the standard procedure perl Makefile.PL ; make ; make install

The installation process checks that you have the following Perl modules already installed, as they are needed for Net::DRI correct operation (if you install Net::DRI with the CPAN shell, the modules will be automatically installed if needed):

  • Carp, UNIVERSAL::require
  • IO::Socket::INET, IO::Socket::SSL (version 0.90 and above)
  • DateTime, DateTime::Duration, DateTime::Format::Strptime, DateTime::TimeZone, DateTime::Format::ISO8601 (version 0.06 and above) : all dates and times used internally or exchanged with the application built on Net::DRI use the DateTime framework
  • Class::Accessor, Class::Accessor::Chained
  • Test::More
  • Time::HiRes, Email::Valid
  • XML::LibXML

Some modules are optional because only used for specific registries/registrars. If not there, they will not be automatically installed, but during tests (see below), you will be warned of which missing module is needed depending on how you plan to use Net::DRI.

  • SOAP::Lite (only needed to use web services interface of BookMyName, Gandi, OVH or AFNIC)
  • SOAP::WSDL (only needed to use web services interface of OVH)
  • Net::SMTP, MIME::Entity (only needed to exchange emails for .FR handled by AFNIC)
  • LWP::UserAgent (only needed to use XCP protocol with OpenSRS, or the EPP protocol with .PL)
  • Digest::MD5 (only needed to use XCP protocol with OpenSRS)
  • Net::DNS (only needed for IRIS DCHK operations, currently available only for .DE)

A test suite is available and can be started with the command make test during installation. This would make sure that all needed additional modules needed for Net::DRI are correctly installed on your system.

Depending on version, you will be able to connect to various providers; please see details in the section on Net::DRI features.

You will find example programs showing how to use Net::DRI with its sources, in the eg directory. Tests (in the t directory) can also be useful. The most important modules of the distribution have their own documentation. For an overview, please be sure to read the README file included with the sources.

Net::DRI is free software distributed under the GPL license: in short, this means you are free, as in free beer and as in free speech, to use it the way it suits you, that you have access to its sources that you can modify, but in exchange, if you redistribute this software, modified or not, you have to give sources, including your own modifications. Please consult the whole text of the license for further information, or contact us for any question.

Net::DRI features

At execution, you use Net::DRI to associate a provider by specifying for each connection a specific protocol and transport. During Net::DRI use, you can at will add or remove connections as well as providers.

In the following paragraphs you will find details about protocols, transports and providers that Net::DRI handles.

Available protocols

In the table below you will find the list of protocols included in Net::DRI. Net::DRI protocols live in the Net::DRI::Protocol namespace.

Protocols available in Net::DRI
Protocol name Net::DRI version Comments
RRP (RFC 2832,3632) 0.11 Previously used by .COM/.NET (before moving to EPP), and still by some ccTLDs
EPP (RFC 4930,4931,4932,4933,4934 - obsoleting 3730,3731,3732,3733,3734 - and 3735,3915) 0.15 used by .COM/.NET, all new gTLDs (.INFO, .BIZ, .PRO, etc...) and more and more ccTLDs
EPP E.164 (RFC 4114) 0.16 EPP extension needed for ENUM
EPP ENUM Validation (RFC 5076) 0.85 EPP extension needed for ENUM information validations
EPP SecDNS (RFC 4310) 0.16 EPP extension needed for DNSSEC
EPP NSgroup (DNS.BE / EURid) 0.16 EPP extension for .BE and .EU
EURid EPP extensions 0.17 EPP extensions for .EU (domains/contacts/sunrise/notifications/registrar)
SE EPP extensions 0.21 EPP extensions for .SE (domains/contacts)
PL EPP extensions (draft-zygmuntowicz-epp-pltld-03) 0.21 EPP extensions for .PL (domains/contacts)
MOBI EPP extension 0.30 EPP extension for .MOBI (domains)
CAT EPP extensions 0.30 EPP extensions for .CAT (domains/contacts/«defensive registration»)
AERO EPP extensions 0.30 EPP extensions for .AERO (domains/contacts)
US EPP extensions 0.30 EPP extensions for .US (contacts)
VeriSign EPP extensions 0.40 EPP extensions especially for .COM .NET (IDNLanguage, NameStore, Sync, WhoisInfo, RGP-Poll, LowBalance)
COOP EPP extensions 0.70 EPP extensions for .COOP (contacts)
IENUMAT EPP extensions 0.30 EPP extensions for Infrastructure ENUM in Austria
AT EPP extensions 0.70 EPP extensions for .AT
BE EPP extensions 0.40 EPP extensions for .BE (domains/contacts)
LU EPP extensions 0.80 EPP extensions for .LU (domains/contacts/messages/status)
ASIA EPP extensions 0.81 EPP extensions for .ASIA (IPR for domain names, CED for contacts)
CentralNic EPP extensions 0.81 WebForwarding, TTL & Domain Release
Nominet (.UK) EPP extensions 0.95 EPP extensions for .UK: handling of accounts, domain names, contacts, hosts and notifications
AU EPP extensions 0.85 EPP extensions for .AU (domains)
Afilias EPP extensions 0.90 EPP extensions (IDNLanguage, Restore) for .ORG .HN .SC .VC .AG .BZ .LC .MN
NAME EPP extensions 0.85 EPP extensions (EmailFwd) for .NAME
US EPP extensions 0.85 EPP extensions (Contact) for .US
NO EPP extensions 0.90 EPP extensions (Contact, Host, Domain, Message, Result) for .NO
TRAVEL EPP extensions 0.90 EPP extensions (UIN) for .TRAVEL
CZ EPP extensions 0.90 EPP extensions (Domain, Contact, NSSET) for .CZ
BR EPP extensions (draft-neves-epp-brdomain-03.txt + draft-neves-epp-brorg-03.txt) 0.91 EPP extensions (Domain, Contact) for .BR
JOBS EPP extensions 0.91 EPP extensions (Contact, NameStore) for .JOBS
PRO EPP extensions 0.91 EPP extensions (Domain, Domain Activation) for .PRO
FR EPP extensions 0.95 EPP extensions (Domain, Contact, Notifications) for .FR
PT EPP extensions 0.92 EPP extensions (Domain, Contact) for .PT
SI EPP extensions 0.95 EPP extensions (Domain, Contact) for .SI
Whois (RFC 3912) 0.95 Parse of whois information for domain names in .COM .NET .ORG .BIZ .INFO .AERO .EU .MOBI .NAME .LU .WS .SE .CAT .AT .TRAVEL .PT
DAS 0.95 Domain Availability Service for .BE .EU .TC .VG .GD .AU .NL + BookMyName + AdamsNames for public use
AFNIC Web Services 0.12 Only domain_check
AFNIC Email 0.30 Email form version 2.0.0
BookMyName Web Services 0.85 Only account_list_domains domain_info domain_check
Gandi Web Services 0.85 Only account_list_domains domain_info domain_check
OVH Web Services 0.85 Only account_list_domains domain_info domain_check
AdamsNames Web Services 0.95 Only domain_info
RRI 0.90 Used by DENIC (.DE)
XCP 0.95 Used by OpenSRS
IRIS (RFC 3981) 0.92 New set of protocols that should replace whois for all kind of registries (domain names, IP addresses, ENUM information, etc.)
IRIS DCHK (RFC 5144) 0.92 Currently only available for .DE
IRIS LWZ (RFC 4993) 0.92 Handling transport with UDP and optional compression, used by IRIS DCHK
IRIS XCP (RFC 4992) 0.95 Handling transport with TCP and supporting SASL PLAIN

Available transports

In the table below you will find the list of transports included in Net::DRI as well as those planned for the future. Net::DRI transports live in the Net::DRI::Transport namespace.

Transports available in Net::DRI
Transport name Net::DRI version Comments
Socket 0.11 Implements an UDP, TCP or TLS connection, with ping() method since version 0.40
SOAP 0.12 Only with HTTP/HTTPS
SMTP 0.22
HTTP/SOAPLite 0.85
HTTP/SOAPWSDL 0.85
HTTP/XMLRPC 0.85
HTTP 0.91 Implements an HTTP or HTTPS stream
Defer 0.92 Implements deferred operations, also useful to simulate operations without sending anything to registries

For testing and debugging, Net::DRI also provides a transport called Dummy that does not send anything over the network. It can also be useful during development of a Net::DRI-based application.

Available Registries/Registrars

In the table below you will find the list of providers (registries, registrars, resellers, hosting companies) included in Net::DRI as well as those planned for the future. Net::DRI providers live in the Net::DRI::DRD namespace, DRD standing for «Domain Registry Driver», where «Registry» should be taken broadly to include any domain name provider, be it a registry, registrar, or a reseller at any level.

Module name in Net::DRI Provider Domain Names / Services Net::DRI version Comments
ICANN ICANN 0.11 Implements domain name rules in gTLDs
VNDS VeriSign Naming and Directory Services .COM .NET .CC .TV .JOBS 0.91 Currently using EPP as protocol and Socket as transport
WS Global Domains International .WS 0.16 Currently using RRP as protocol and Socket as transport
AFNIC AFNIC .FR .RE .TF .WF .PM .YT 0.91 Only domain_check through Web Services and all operations by email and EPP
EURid EURid .EU 0.17 Currently using EPP as protocol and Socket as transport
SE NIC SE .SE 0.21 Currently using EPP as protocol and Socket as transport
PL NASK .PL 0.91 Currently using EPP as protocol and HTTP as transport
AERO SITA .AERO 0.30 Currently using EPP as protocol and Socket as transport
CAT puntCAT (Corenic) .CAT 0.30 Currently using EPP as protocol and Socket as transport
MOBI mTLD .MOBI 0.30 Currently using EPP as protocol and Socket as transport
IENUMAT enum.at Infrastructure ENUM in Austria 0.30 Currently using EPP as protocol and Socket as transport
AT NIC AT .AT 0.70 Currently using EPP as protocol and Socket as transport
BE DNSBE .BE 0.40 Currently using EPP as protocol and Socket as transport
ORG PIR .ORG 0.70 Currently using EPP as protocol and Socket as transport
INFO Afilias .INFO 0.70 Currently using EPP as protocol and Socket as transport
COOP Dot Cooperation .COOP 0.70 Currently using EPP as protocol and Socket as transport
LU DNSLU .LU 0.80 Currently using EPP as protocol and Socket as transport
ASIA DotAsia Organisation .ASIA 0.81 Currently using EPP as protocol and Socket as transport
NAME Global Name Registry .NAME 0.81 Currently using EPP as protocol and Socket as transport
NU .NU Domain LTD .NU 0.81 Currently using EPP as protocol and Socket as transport
Nominet Nominet .CO.UK .LTD.UK .ME.UK .NET.UK .ORG.UK .PLC.UK .SCH.UK 0.85 Currently using EPP as protocol and Socket as transport
AU auDA .AU 0.85 Currently using EPP as protocol and Socket as transport
US NeuStar .US 0.85 Currently using EPP as protocol and Socket as transport
BookMyName BookMyName (Free/ProXad/Iliad/Online) .COM .NET .ORG .BIZ .INFO .NAME .EU .BE .US 0.85 Only account_list_domains domain_info through the web services API
Gandi Gandi .COM .NET .ORG .BIZ .INFO .NAME .BE 0.85 Only account_list_domains domain_info through the web services API
OVH OVH .COM .NET .ORG .BIZ .INFO .FR .EU .ME.UK .CO.UK .ORG.UK .DE .BE .RE .ES 0.85 Only account_list_domains domain_info through the web services API
NO Norid .NO 0.90 Currently using EPP as protocol and Socket as transport
DENIC DENIC .DE 0.90 Currently using RRI or IRIS DCHK as protocol and Socket as transport
SWITCH SWITCH .CH .LI 0.90 Currently using EPP as protocol and Socket as transport
HN Afilias .HN 0.90 Currently using EPP as protocol and Socket as transport
SC .SC
VC .VC
AG .AG
BZ .BZ
LC .LC
MN .MN
ME .ME
CZ CZ.NIC .CZ 0.90 Currently using EPP as protocol and Socket as transport
BR RegistroBR .BR 0.91 Currently using EPP as protocol and Socket as transport
PRO RegistryPRO .PRO 0.91 Currently using EPP as protocol and Socket as transport
OpenSRS OpensRS .COM .NET .ORG .INFO .BIZ .MOBI .NAME .ASIA .AT .BE .CA .CC .CH .CN .DE .DK .ES .EU .FR .IT .LI .ME .COM.MX .NL .TV .UK .US 0.91 Currently using XCP as protocol and HTTP as transport
CentralNIC CentralNIC .LA .UK.NET .SE.NET .GB.NET .EU.COM .UK.COM .US.COM .CN.COM .DE.COM .JPN.COM .KR.COM .NO.COM .ZA.COM .BR.COM .AR.COM .RU.COM .SA.COM .SE.COM .HU.COM .GB.COM .QC.COM .UY.COM .AE.COM 0.92 Currently using EPP as protocol and Socket as transport
CoCCA CoCCA .CX .GS .TL .KI .MU .NF .HT .NA .NG .CC .CM .SB .MG 0.92 Currently using EPP as protocol and Socket as transport
PT FCCN .PT 0.92 Currently using EPP as protocol and Socket as transport
ARNES ARNES .SI 0.95 Currently using EPP as protocol and Socket as transport
IM IM .IM 0.95 Currently using EPP as protocol and Socket as transport

Other features: command line shell

Since version 0.91, Net::DRI ships with a shell called Net::DRI::Shell you can use to do all operations through Net::DRI without writing any line of code. This shell is fully documented and also allows batch operations (on a list of domain names) with logging and time statistics.

Development process

Net::DRI is developed using software revision tracking tools, and has a testing suite to be able to verify that no bugs have been introduced on previous features during a new revision. These tests are provided with the sources, and are available in the t directory of the archive.

If you have specific needs or want to participate in Net::DRI development

Participating in Net::DRI development is open to any interested person or company. Since Net::DRI is free software and because of its very flexible and easily extensible architecture, anyone can modify and extend the features in any required direction.

For any large development please do not hesitate to contact us beforehand in order to be able to later easily accept your contributions on the technical and license level.

Also, Dot and Co continues to develop Net::DRI in the directions that seem relevant and depending on feedback that we receive. Please do not hesitate to send your needs and expectations to us. Except in particular cases, future developments will remain under the GPL license.

If you have precise and specific needs, or an urgent need of a feature, you can financially sponsor a given development. Contact us for information on details and fees. Please note that we offer financial incentives for developments whose results can be later redistributed as free software, by inclusion in a future Net::DRI version (this can happen after a specific delay for example).

Net::DRI is a free software: any contribution (bugfixes, enhancements, new documentation, communication around the project, hypertext link to this page, financial donation, etc.) is welcome for its success ! Even a small email from a satisfied user is always appreciated.

Contributions

The following individuals or organizations, in no particular order, have contributed to the development of Net::DRI by providing documentation, ideas for enhancements, code corrections, bug reports or financial support.

  • Tonnerre Lombard (Sygroup)
  • Alexander Biehl (Hexonet Support GmbH)
  • Dan Maharry (DotCooperation LLC)
  • Cedric Dubois
  • Roger Heykoop
  • Klaus Malorny (puntCAT)
  • Christian Kratzer
  • Brian Drysdale
  • Rony Meyer (DistributeIT Pty Ltd)
  • Sten Spans
  • Andreas Wittkemper
  • Michael Braunoeder (ENUM.AT/NIC.AT)
  • Elias Sidenbladh (NIC SE)
  • Lucas Vossberg
  • Peter van Dijk
  • Yves Cartenstadt
  • Jørgen Thomsen
  • Tom van der Geer
  • Trond Haugen (Norid)
  • Eberhard Lisse (CoCCA)
  • Jouanne Mickael
  • Felix Antonius Wilhelm Ostmann
  • Jim Driscoll
  • Vitezslav Novy
  • Ulrich Wisser
  • Richard Siddall

If you are missing in this list, want to be removed or to change something, please contact us. Each specific contribution is properly ported to the credit of its author in our Changes file distributed with Net::DRI.

You are a Registry, a Registrar or a Reseller and would like to enable your clients to use Net::DRI?

Allowing your clients to directly use Net::DRI is a benefit for you:

  • less technical support: Net::DRI will be specifically tailored to work with your systems, and your clients will only need to use the software as provided, with very little work from their part,
  • less work from your part: you do not have to build the client side of your interfaces,
  • satisfaction of your clients to be able to use one and only one solution to connect to your systems and to those of other providers that they may be using.

To start earning all these benefits, you just have to get in touch with us to ensure the interoperability between Net::DRI and your systems. Such an interoperability may need a specific development in Net::DRI to implement a new protocol and/or transport.

Then, just point your clients to this web page or give them the sources archive of the latest Net::DRI version.

Even if you do not redistribute Net::DRI to your clients, any technical documentation regarding your systems that may help developing the client side or any access to your test systems would be greatly appreciated and advertised.

Support, bug reports, comments on Net::DRI

For any correspondence about this software, please use preferably the following email address: netdri@dotandco.com. You can use it to warn of a problem, provide comments or ask for technical support. Any argumented comment is welcome.

If necessary, a mailing list will be created later on. Discussion can also already take place in our newsgroup dotandco.discuss (please see our section on Dot and Co forums).

Dot and Co will try to answer all support requests for free and promptly, within reasonable limits.

At the same time, Dot and Co can provide specific solutions for installing, configuring, maintaining Net::DRI or developing applications with it, as well as technical support, through a fixed price or by duration. Please contact us for details at netdri@dotandco.com .

Download Net::DRI

Net::DRI latest release is version 0.95, available since August, 15th 2009.

You can download:

Dot and Co, French eurl with 30,000 euros in capital, French registration number RCS PARIS B 451 130 728 | CNIL declaration n°890812 | «Dot and Co» is a registered trademark.