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.