IO::EPP::Verisign
use IO::EPP::Verisign; # Parameters for IO::Socket::SSL my %sock_params = ( PeerHost => 'epp.verisign-grs.com', PeerPort => 700, SSL_key_file => 'key_file.pem', SSL_cert_file => 'cert_file.pem', Timeout => 30, ); # Create object, get greeting and call login() my $conn = IO::EPP::Verisign->new( { user => 'login', pass => 'XXXXX', sock_params => \%sock_params, server => 'Core', # or NameStore, or DotName test_mode => 0, # real connect } ); # Check domain my ( $answ, $code, $msg ) = $conn->check_domains( { domains => [ 'org.info' ] } ); # Call logout() and destroy object undef $conn;
Work with Verisign EPP API
Features: Very mach extension, verisign here is leader. Absolutely all extensions have not yet been implemented
docs: https://www.verisign.com/en_US/channel-resources/domain-registry-products/epp-sdks/index.xhtml?loc=en_US, https://epptool-ctld.verisign-grs.com/epptool/ (need white IP)
for .name: https://www.verisign.com/assets/email-forwarding-mapping.pdf
See description in "new" in IO::EPP::Base
Requires the server field to be specified, which can have values: Core for .com/.net/.edu, DotName for .name, NameStore for cctld and new gtlds.
server
Core
DotName
NameStore
далее перекрываем те функции, где у провайдера есть особенности
залогиниться
For .jobs need additional parameters: jobs_title, jobs_website, jobs_industry_type, is_admin.
jobs_title
jobs_website
jobs_industry_type
is_admin
About .jobs parameters see https://www.verisign.com/assets/epp-jobscontact-extension.pdf.
For IDN domains you need to specify the language code in the idn_lang field
idn_lang
See https://www.verisign.com/assets/idn-valid-language-tags.pdf, and https://www.iana.org/domains/idn-tables for .com, .net
First call of restore — request
Secont call of restore — confirmation
pre_data — whois before delete, may be none; post_data — whois now, may be none; del_time — domain delete datetime in UTC; rest_time — restore request call datetime in UTC.
pre_data
post_data
del_time
rest_time
The following fields already contain the required value, they do not need to be passed: resReason — restore reason; statement — need to write what it is for the client; other — additional information, may be empty.
resReason
statement
other
Registry information for the specified zone
key in params: tld
tld
An Example:
my ( $answ, $code, $msg ) = $conn->get_registry_info( { tld => 'net' } ); # answer { 'alphaNumStart' => 'true', 'max' => [ '13', '13' ], 'language code' => [ 'ARG', 'ASM', 'AST', 'AVE', 'AWA', 'BAK', 'BAL', 'BAN', 'BAS', 'BEL', 'BOS', 'CAR', 'CHE', 'CHV', 'COP', 'COS', 'WEL', 'DIV', 'DOI', 'FIJ', 'FRY', 'GLA', 'GLE', 'GON', 'INC', 'IND', 'INH', 'JAV', 'KAS', 'KAZ', 'KHM', 'KIR', 'LTZ', 'MAO', 'MAY', 'MLT', 'MOL', 'MON', 'OSS', 'PUS', 'SIN', 'SMO', 'SOM', 'SRD', 'TGK', 'YID', 'AFR', 'ALB', 'ARA', 'ARM', 'AZE', 'BAQ', 'BEN', 'BHO', 'TIB', 'BUL', 'BUR', 'CAT', 'CZE', 'CHI', 'DAN', 'GER', 'DUT', 'GRE', 'ENG', 'EST', 'FAO', 'PER', 'FIN', 'FRE', 'GEO', 'GUJ', 'HEB', 'HIN', 'SCR', 'HUN', 'ICE', 'ITA', 'JPN', 'KOR', 'KUR', 'LAO', 'LAV', 'LIT', 'MAC', 'MAL', 'NEP', 'NOR', 'ORI', 'PAN', 'POL', 'POR', 'RAJ', 'RUM', 'RUS', 'SAN', 'SCC', 'SLO', 'SLV', 'SND', 'SPA', 'SWA', 'SWE', 'SYR', 'TAM', 'TEL', 'THA', 'TUR', 'UKR', 'URD', 'UZB', 'VIE' ], 'gracePeriod command:transfer unit:d' => '5', 'gracePeriod command:create unit:d' => '5', 'default unit:y' => [ '1', '1', '1' ], 'gracePeriod command:autorenew unit:d' => '45', 'subProduct' => 'NET', 'idnVersion' => '1.1', 'expression' => [ '[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?', '^(?=.*\\\\d)(?=.*[a-zA-Z])(?=.*[\\\\x21-\\\\x2F\\\\x3A-\\\\x40\\\\x5B-\\\\x60\\\\x7B-\\\\x7E])[\\\\x21-\\\\x7e]{8,32}$', '^([\\-|\\w])+\\.([\\-|\\w])+\\s{0,}$)$' ], 'redemptionPeriod unit:d' => '30', 'encoding' => 'PunyCode', 'max unit:y' => [ '10', '10', '1' ], 'name' => 'NET', 'maxCheckHost' => '20', 'urgent' => 'false', 'default' => '604800', 'onlyDnsChars' => 'true', 'maxCheckDomain' => '20', 'transferHoldPeriod unit:d' => '5', 'digestType' => [ 'SHA-1', 'SHA-256', 'GOST R 34.11-94', 'SHA-384' ], 'alg' => [ 'RSAMD5', 'DH', 'DSA', 'RSASHA1', 'DSA-NSEC3-SHA1', 'RSASHA1-NSEC3-SHA1', 'RSASHA256', 'RSASHA512', 'ECC-GOST', 'ECDSAP256SHA256', 'ECDSAP384SHA384' ], 'startDate' => '2000-01-01T00:00:00Z', 'minLength' => '3', 'status' => [ 'ok', 'serverHold', 'serverRenewProhibited', 'serverTransferProhibited', 'serverUpdateProhibited', 'serverDeleteProhibited', 'redemptionPeriod', 'pendingRestore', 'pendingDelete', 'clientRenewProhibited', 'clientTransferProhibited', 'clientUpdateProhibited', 'clientDeleteProhibited', 'pendingTransfer', 'clientHold', 'ok', 'pendingDelete', 'pendingTransfer', 'serverUpdateProhibited', 'serverDeleteProhibited', 'clientUpdateProhibited', 'clientDeleteProhibited', 'linked' ], 'zoneMember type:equal' => 'NET', 'group' => 'THIN', 'clientDefined' => 'false', 'pendingRestore unit:d' => '7', 'minIP' => [ '1', '0' ], 'extURI required:true' => [ 'urn:ietf:params:xml:ns:coa-1.0', 'http://www.verisign.com/epp/idnLang-1.0', 'urn:ietf:params:xml:ns:secDNS-1.1', 'http://www.verisign-grs.com/epp/namestoreExt-1.1', 'urn:ietf:params:xml:ns:rgp-1.0', 'http://www.verisign.com/epp/whoisInf-1.0', 'http://www.verisign.com/epp/sync-1.0', 'http://www.verisign.com/epp/relatedDomain-1.0', 'urn:ietf:params:xml:ns:launch-1.0' ], 'upDate' => '2013-08-10T21:16:01Z', 'min unit:y' => [ '1', '1', '1' ], 'unicodeVersion' => '6.0', 'commingleAllowed' => 'false', 'pendingDelete unit:d' => '5', 'sharePolicy' => [ 'perSystem', 'perSystem' ], 'min' => [ '0', '0', '1' ], 'idnaVersion' => 'IDNA 2008', 'objURI required:true' => [ 'urn:ietf:params:xml:ns:domain-1.0', 'urn:ietf:params:xml:ns:contact-1.0', 'urn:ietf:params:xml:ns:host-1.0', 'http://www.verisign.com/epp/registry-1.0', 'http://www.verisign.com/epp/lowbalance-poll-1.0', 'http://www.verisign.com/epp/rgp-poll-1.0' ], 'crDate' => '2000-01-01T00:00:00Z', 'premiumSupport' => 'false', 'alphaNumEnd' => 'true', 'gracePeriod command:renew unit:d' => '5', 'maxLength' => '63', 'maxIP' => [ '13', '0' ], 'contactsSupported' => 'false' };
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.