Author image Vadim Likhota (Вадим Лихота)

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.