NAME
IO::EPP::IRRP
SYNOPSIS
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;
DESCRIPTION
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
METHODS
Further overlap functions where the provider has features
login
Ext params for login,
INPUT: new password for change
create_domain
Additional tld parameters must be specified as described in the tld documentation
check_transfer
Check the availability of domain transfer, the specific function
INPUT:
key of params: dname
-- domain name
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_transfer_list
Get a list of all domains that are currently in the transfer state
No input params
An Example, request:
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'
};
get_status_domain
Function for getting additional domain data
INPUT:
key of params: dname
-- domain name
An Example, request:
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'
};
renew_domain
Automatic adds an additional parameter for the .jp tld
set_domain_renewal_mode
Update domain renewal mode
https://wiki.hexonet.net/wiki/API:SetDomainRenewalMode
INPUT:
params with key:
renewal_mode
– valid values: AUTORENEW
, AUTODELETE
, AUTOEXPIRE
OUTPUT: see "simple_request" in IO::EPP::Base
update_domain
Has additional parameters:
trade
– Changing domain contacts requires confirmation or a fee, depending on the tld;
confirm_old_registrant
– send confirmation of changing the owner's email address to the old address;
confirm_new_registrant
– send confirmation of changing the owner's email address to the new address;
Other additional parameters depend on the tld.
restore_domain
Domain redemption after deletion
its own feature instead of rgp:restore
INPUT:
key of params: dname
-- domain name
get_domain_list
Get a list of all your domains
get_accounting_list
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
req_poll_ext
key-value extension for the req poll
AUTHORS
Vadim Likhota <vadiml@cpan.org>, renewal_mode function are written by Andrey Voyshko
COPYRIGHT
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.