IO::EPP::IRRP
use IO::EPP::IRRP; # Parameters for IO::Socket::SSL my %sock_params = ( PeerHost => 'epp.ispapi.net', PeerPort => 700, Timeout => 30, ); # Create object, get greeting and call login() my $conn = IO::EPP::IRRP->new( { user => 'login', pass => 'xxxxx', sock_params => \%sock_params, test_mode => 0, # real connect } ); # Check domain my ( $answ, $code, $msg ) = $conn->check_domains( { domains => [ 'info.name', 'name.info' ] } ); # Call logout() and destroy object undef $conn;
Work with iRRP/iDotz/Hexonet epp api:
A large number of add-ons, but all special data is passed through the key-value extension
Some of the transfer Functions have been replaced with the key-value extension
To change the contacts of many zones you need to use trade
Description of EPP from iRRP/Hexonet: https://wiki.hexonet.net/wiki/EPP_examples
Special EPP functions, as Query*List: http://www.irrp.net/document.pdf (domain, contact, transfer, zone, event, nameserver, accounting)
TLD lists: https://wiki.hexonet.net/wiki/Main_Page and New GTLD https://wiki.hexonet.net/wiki/NewTLD_Main_Page
Further overlap functions where the provider has features
Ext params for login,
INPUT: new password for change
Additional tld parameters must be specified as described in the tld documentation
Check the availability of domain transfer, the specific function
INPUT:
key of params: dname -- domain name
dname
An Example, request:
my ( $answ, $msg ) = make_request( 'check_transfer', { dname => 'irrp.xyz', %conn_params } );
Answer:
{ 'msg' => 'Object exists; 540 Attribute value is not unique; DOMAIN DOES NOT EXIST [irrp.xyz]', 'code' => 2302 };
Get a list of all domains that are currently in the transfer state
No input params
my ( $answ, $msg, $conn ) = make_request( 'get_transfer_list', \%conn_params ); # Answer: { 'user1' => 'login', 'parentuser2' => 'brsmedia.net', 'user' => 'login', 'domainumlaut1' => 'mmmm.travel', 'code' => '1000', 'count' => '3', 'total' => '3', 'parentuser' => 'brsmedia.net', 'domain1' => 'mmmm.travel', 'domainumlaut2' => 'pppp.travel', 'createddate' => '2019-02-07 08:56:06', 'domain2' => 'pppp.travel', 'domain' => 'eeee.travel', 'limit' => '10000', 'msg' => 'Command completed successfully', 'first' => '0', 'createddate2' => '2018-03-06 10:26:57', 'last' => '2', 'parentuser1' => 'brsmedia.net', 'domainumlaut' => 'eeee.travel', 'createddate1' => '2018-03-27 05:03:40', 'user2' => 'login' };
Function for getting additional domain data
my ( $answ, $msg, $conn ) = make_request( 'get_status_domain', { dname => '777.mx', %conn_params } ); # Answer: { 'REGISTRATIONGRACEPERIOD' => '0', 'NEXTACTION' => 'expire', 'FINALIZATIONDATE' => '2021-02-02 15:07:40', 'CREATEDDATE' => '2017-12-20 15:07:40', 'TRANSFERDATE' => '0000-00-00 00:00:00', 'STATUS1' => 'clientTransferProhibited', 'TECHCONTACT' => '777esap4gmjnbv', 'NAMESERVER' => 'ns1.777.com', 'STATUS' => 'ACTIVE', 'OWNERCONTACT' => '777vw7yurk2x2k', 'FAILUREDATE' => '2021-02-02 15:07:40', 'ACCOUNTINGPERIOD' => '0', 'RENEWALMODE' => 'AUTOEXPIRE', 'USER' => 'login', 'code' => 1000, 'X-WHOIS-RSP' => 'My Company', 'NEXTACTIONDATE' => '2021-02-02 15:07:40', 'DOMAINUMLAUT' => '777.mx', 'FINALIZATIONPERIOD' => '44d', 'NAMESERVER1' => 'ns2.777.com', 'EXPIRATIONDATE' => '2020-12-20 15:07:40', 'SUBCLASS' => 'MX', 'REGISTRARUPDATEDDATE' => '2019-12-26 15:51:38', 'PREPAIDPERIOD' => '0', 'UPDATEDDATE' => '2019-12-26 15:51:38', 'ROID' => 'DOMAIN_77700005500777-MX', 'HOSTTYPE' => 'OBJECT', 'UPDATEDBY' => 'SYSTEM', 'CREATEDBY' => 'SYSTEM', 'DESCRIPTION' => '777.mx', 'AUTH' => '777rhE!r9q=#y', 'ID' => '777.mx', 'BILLINGCONTACT' => '777y2emz0ib63xj', 'REGISTRAR' => 'SYSTEM', 'DELETIONRESTORABLEPERIOD' => '30d', 'REGISTRARTRANSFERDATE' => '0000-00-00 00:00:00', 'REGISTRATIONEXPIRATIONDATE' => '2020-12-20 15:07:40', 'PAIDUNTILDATE' => '2020-12-20 15:07:40', 'msg' => 'Command completed successfully', 'FAILUREPERIOD' => '44d', 'ADMINCONTACT' => '777sagtqh10mvpo', 'CLASS' => 'DOMAIN', 'ACCOUNTINGDATE' => '2020-12-20 15:07:40', 'REPOSITORY' => 'MX-LIVE-1API', 'DELETIONHOLDPERIOD' => '0d', 'TRANSFERLOCK' => '1', 'X-WHOIS-URL' => 'http://www.777.com', 'X-WHOIS-BANNER0' => 'Please register your domains at http://www.777.com' };
Automatic adds an additional parameter for the .jp tld
Update domain renewal mode
https://wiki.hexonet.net/wiki/API:SetDomainRenewalMode
params with key:
renewal_mode – valid values: AUTORENEW, AUTODELETE, AUTOEXPIRE
renewal_mode
AUTORENEW
AUTODELETE
AUTOEXPIRE
OUTPUT: see "simple_request" in IO::EPP::Base
Has additional parameters:
trade – Changing domain contacts requires confirmation or a fee, depending on the tld;
trade
confirm_old_registrant – send confirmation of changing the owner's email address to the old address;
confirm_old_registrant
confirm_new_registrant– send confirmation of changing the owner's email address to the new address;
confirm_new_registrant
Other additional parameters depend on the tld.
Domain redemption after deletion
its own feature instead of rgp:restore
Get a list of all your domains
Get lists of accounts, it makes sense to watch only the first record
my ( $answ, $msg, $conn ) = make_request( 'get_accounting_list', { limit => 1, %conn_params } );
You can use this request to check your account balance
key-value extension for the req poll
Vadim Likhota <vadiml@cpan.org>, renewal_mode function are written by Andrey Voyshko
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install IO::EPP::TCI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IO::EPP::TCI
CPAN shell
perl -MCPAN -e shell install IO::EPP::TCI
For more information on module installation, please visit the detailed CPAN module installation guide.