IO::EPP::Flexireg
use IO::EPP::Flexireg; # Parameters for IO::Socket::SSL my %sock_params = ( PeerHost => 'epp.flexireg.net', PeerPort => 700, Timeout => 30, ); # Create object, get greeting and call login() my $conn = IO::EPP::Flexireg->new( { user => 'login-msk-fir', pass => 'xxxxxxxx', sock_params => \%sock_params, test_mode => 0, # real connect } ); # Check domain my ( $answ, $code, $msg ) = $conn->check_domains( { domains => [ 'my.moscow', 'xn--l1ae5c.xn--80adxhks' ] } ); # Call logout() and destroy object undef $conn;
Module work with Flexireg tlds: .moscow, .москва, ru.net and 3lvl.ru/su
Frontend: https://faitid.org/
Backend: http://flexireg.net/
Documentaion:
moscow, москва https://faitid.org/projects/moscow/documents, https://faitid.org/sites/default/files/policy/tech/Tu-flexireg-EPP_1.2_ru.pdf, https://faitid.org/sites/default/files/Tu-flexireg-Examples_1.3_ru.pdf
ru.net+ https://faitid.org/projects/RU.NET/documents, https://faitid.org/sites/default/files/Tu-flexireg-EPP_ext.pdf
Further overlap functions where the provider has features
Ext params for login,
INPUT: new password for change
For moscow/москва:
When registering a contact, you must specify both int type data and loc type data, and if the domain owner has passport data in Cyrillic, then loc type data must be entered in Cyrillic. This is mandatory for citizens and legal entities of Russia, Ukraine, Belarus and other countries that have the Cyrillic alphabet.
In addition, the owner must provide additional information.
For individuals:
birthday -- date of birth;
birthday
passport -- passport series and number, by whom and when it was issued;
passport
TIN -- TIN for individual entrepreneurs.
TIN
For legal entities:
hashref legal, that contains the legal address, it also needs to specify two types: int and loc, consisting of the fields addr, city, state, postcode, country_code.
legal
int
loc
addr
city
state
postcode
country_code
You also need to specify the TIN field.
An Example:
Individuals:
my %cont = ( int => { first_name => 'Igor', patronymic => 'Igorevich', last_name => 'Igorev', org => '', addr => 'Igoreva str, 129', city => 'Igorevsk', state => 'Ogorevskaya obl.', postcode => '699001', country_code => 'RU', }, loc => { first_name => 'Игорь', patronymic => 'Игоревич', last_name => 'Игорев', org => '', addr => 'ул. Игорева, 129', city => 'Игоревск', state => 'Игоревская обл.', postcode => '699001', country_code => 'RU', }, birthday => '1909-01-14', passport => '11.11.2011, выдан Отделом УФМС России по Игоревской области в г.Игоревске, 2211 446622', phone => '+7.9012345678', fax => '', email => 'igor@i.ru', TIN => '', }; my ( $answ, $msg, $conn ) = make_request( 'create_contact', \%cont );
Legal entities:
my %cont = ( int => { first_name => 'Igor', patronymic => 'Igorevich', last_name => 'Igorev', org => 'Igor and Co', addr => 'Igoreva str, 129', city => 'Igorevsk', state => 'Igorevskaya obl.', postcode => '699001', country_code => 'RU', }, loc => { first_name => 'Игорь', patronymic => 'Игоревич', last_name => 'Игорев', org => 'Игорь и Ко', addr => 'ул. Игорева, 129', city => 'Игоревск', state => 'Игоревская обл.', postcode => '699001', country_code => 'RU', }, legal => { int => { addr => 'Company str, 1', city => 'Igorevsk', state => 'Igorevskaya obl.', postcode => '699002', country_code => 'RU', }, loc => { addr => 'ул. Компаний, 1', city => 'Игоревск', state => 'Игоревская обл.', postcode => '699002', country_code => 'RU', } } }; my ( $answ, $code, $msg ) = $conn->create_contact( \%cont );
Parsing the tcinet extension for get_contact_info:
birthday and passport for individuals;
legal address for legal entities.
An Example
{ 'int' => { 'city' => 'Kaluga', 'country_code' => 'RU', 'name' => 'Igor Igorevich Igover', 'postcode' => '248000', 'addr' => 'Barrikadnaya 1', 'state' => 'Kaluzhskaya obl.' }, 'roid' => '22222217183841759329_aed2a25748687035b9ad8dcbcf839171_contact-FIR', 'cre_date' => '2020-01-01 10:10:10', 'TIN' => 'FICTION-01', 'email' => [ 'i@go.ru' ], 'fax' => [], 'legal' => { 'int' => { 'city' => 'Moscow', 'country_code' => 'RU', 'postcode' => '123456', 'addr' => 'ul. Vasi Petushkova, dom 3', 'state' => 'Moscow' }, 'loc' => { 'city' => 'Москва', 'country_code' => 'RU', 'postcode' => '123456', 'addr' => 'Васи Петушкова стриит., хаус 3', 'state' => 'Москва' } }, 'creater' => 'login-msk-fir', 'authinfo' => 'khylMUWPjpqU=%9Y', 'code' => '1000', 'owner' => 'login-msk-fir', 'msg' => 'Command completed successfully', 'phone' => [ '+7.9166337777' ], 'cont_id' => 'jsybsvtjjjjj', 'loc' => { 'city' => 'Калуга', 'country_code' => 'RU', 'name' => 'Игорь Игоревич Игорев', 'postcode' => '248000', 'addr' => 'Баррикадная 1', 'state' => 'Калужская обл.' }, 'statuses' => { 'ok' => '+' } };
Domains ru.net+ tlds have only the registrant, without the administrator and other contacts
first call for restore_domain
Second call for restore_domain
pre_data
whois before delete;
post_data
whois on now;
del_time
delete domain date-time, see. upd_date in domain:info before call restore_domain;
rest_time
restore request call datetime in UTC;
reason
restore reason,
variants: Registrant Error, Registrar Error, Judicial / Arbitral / Administrative / UDRP Order;
Registrant Error
Registrar Error
Judicial / Arbitral / Administrative / UDRP Order
statement
need to write what it is for the client;
other
can and without other.
Vadim Likhota <vadiml@cpan.org>
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.