/php-epp-client

Object-oriented PHP EPP Client for .fi domains

Primary LanguagePHPGNU General Public License v2.0GPL-2.0

php-epp-client
==============

Object-oriented PHP EPP Client

Welcome to the "object-oriented EPP client in PHP" project.

This project supports the following:
------------------------------------
- Full EPP 57xx RFC standard
- Extensible PHP objects to add registry-specific additions
- Rock-solid object-oriented programming, object inheritance and exception handling
- Interface tested and in use with a registrar that handles 600.000+ domain names
- Public/private key client certificates for connecting to EPP service (for example see Registries/IIS)
- Connection to EPP via HTTP/SSL (for example see Registries/Openprovider)
- DNSSEC transactions
- Registry sunrise, landrush and claims periods (draft-ietf-eppext-launchphase)
- TMCH/TMDB CNIS retrieval examples with standard ICANN registrar message

This code will provide you with a fully functional EPP client to connect to any registry world-wide that supports EPP.

All code is organized in objects, so connecting to a new registry is just a matter of object re-use and extension.

Sample registry connections are provided in the Registries directory.

Currently supported registries:
- SIDN (.nl)
- dotAmsterdam
- Donuts
- EurID (.eu)
- dotFRL
- CarDNS (.hr)
- IIS (.se and .nu)
- Metaregistrar
- Nic.AT (.at)
- Key Systems RRPPROXY
- Openprovider


All code changes are tested automatically with the phpunit tests in the Tests directory

Example scipts in the main directory:
-------------------------------------
checkdomain.php         - check one domain name
timeddomaincheck.php    - check multiple domain names and check how fast the registry is
registerdomain.php      - register a domain name
changepassword.php      - change EPP password
infodomain.php          - get information on a domain name
modifydomain.php        - update a domain name with new info
createcontact.php       - create a contact object
updatecontact.php       - update contact details of a created contact object
registerdomain.php      - register a domain name in general availability phase
signdomain.php          - DNSSEC sign a domain name
poll.php                - list registry poll messages and confirm a message
checklaunchdomain.php   - check domain name in 'claims' phase of draft-ietf-eppext-launchphase and check if the domain is free
createlaunchdomain.php  - register domain name in 'claims' phase of draft-ietf-eppext-launchphase
checktmchdomain.php     - check domain name in the 'claims' phase and check if the domain has a claim and retrieve the cnis info from the TMCH
test-claim.php          - connect to the TMCH test service and retrieve the list of domain names, query cnis info and display icann std warning msg
createclaimeddomain.php - create domain name that has a tmch claim in the claims phase of the launch

How to use this repository
--------------------------
- Check out the latest version from github
- Use the Examples/checkdomain.php and create a connection to your favorite registry (for example new Metaregistrar\EPP\metaregEppConnection())
- Create a settings.ini in with the following contents:
        interface=metaregEppConnection
        hostname=ssl://epp.test2.metaregistrar.com
        port=7443
        userid=xxxxxxxx
        password=xxxxxxxxx
- Now, checkdomain.php should be functioning and checking domains.

If you do not want to use settings.ini files in the Registries directory, you can create a connection as follows:
$conn = Metaregistrar\EPP\eppConnection::create('path-to-settings.ini');

Or set all parameters individually:
$conn = Metaregistrar\EPP\metaregEppConnection();
$conn->setHostname('ssl://epp.test2.metaregistrar.com'); // Hostname may vary depending on the registry selected
$conn->setPort(7443); // Port may vary depending on the registry selected
$conn->setUsername('xxxxxxxx');
$conn->setPassword('xxxxxxxxx');