GitPedia

Php epp client

Object-oriented PHP EPP Client

From metaregistrar·Updated June 17, 2026·View on GitHub·

**php epp client** is a Object-oriented PHP EPP Client The project is written primarily in PHP, distributed under the MIT License license, first published in 2013. Key topics include: domainnamemanager, epp, php.

Latest release: 1.0.14Release 2025
April 23, 2025View Changelog →

PHP EPP Client

Latest Stable Version
Total Downloads
Latest Unstable Version

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)
  • DNS Belgium (.be .vlaanderen .brussels)
  • .CO.NL
  • dotFRL
  • IIS (.nu and .se)
  • CarDNS (.hr)
  • Metaregistrar
  • Nic.AT (.at)
  • Key Systems RRPPROXY
  • .PT
  • Switch (.ch)
  • Openprovider
  • Ficora (.fi)
  • DNS.PT (.pt)
  • Norid (.no)
  • Arnes (.si)
  • Nic.lv (.lv)
  • SK-NIC (.sk)

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

Example scipts in the main directory:

FileDescription
checkdomain.phpCheck one domain name.
timeddomaincheck.phpCheck multiple domain names and check how fast the registry is.
registerdomain.phpRegister a domain name.
changepassword.phpChange EPP password.
infodomain.phpGet information on a domain name.
modifydomain.phpUpdate a domain name with new info.
createcontact.phpCreate a contact object.
updatecontact.phpUpdate contact details of a created contact object.
createdomain.phpRegister a domain name in general availability phase.
signdomain.phpDNSSEC sign a domain name.
poll.phpList registry poll messages and confirm a message.
checklaunchdomain.phpCheck domain name in 'claims' phase of draft-ietf-eppext-launchphase and check if the domain is free.
createlaunchdomain.phpRegister domain name in 'claims' phase of draft-ietf-eppext-launchphase.
checktmchdomain.phpCheck domain name in the 'claims' phase and check if the domain has a claim and retrieve the cnis info from the TMCH.
test-claim.phpConnect to the TMCH test service and retrieve the list of domain names, query cnis info and display icann std warning msg.
createclaimeddomain.phpCreate domain name that has a tmch claim in the claims phase of the launch.

How to use this repository

  1. Check out the latest version from github. (Or composer require metaregistrar/php-epp-client)
  2. Use the Examples/checkdomain.php and create a connection to your favorite registry (for example new Metaregistrar\EPP\metaregEppConnection()).
  3. Create a settings.ini in with the following contents:
        interface=eppConnection
        hostname=ssl://epp-ote.metaregistrar.com
        port=7000
        userid=xxxxxxxx
        password=xxxxxxxxx
        logging=true
        certificatefile=/home/xxxxxx/xxxxxxx.pem
        certificatekey=/home/xxxxxx/xxxxxxx.key
        certificatepassword=xxxxxxx
        verifypeer=true/false
        verifypeername=true/false
        allowselfsigned=true/false
  1. 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 = new Metaregistrar\EPP\eppConnection();
$conn->setHostname('ssl://epp-ote.metaregistrar.com'); // Hostname may vary depending on the registry selected
$conn->setPort(7000); // Port may vary depending on the registry selected
$conn->setUsername('xxxxxxxx');
$conn->setPassword('xxxxxxxxx');

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from metaregistrar/php-epp-client via the GitHub API.Last fetched: 6/20/2026