NAME
IO::EPP::Verisign
SYNOPSIS
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;
DESCRIPTION
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
new
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.
METHODS
далее перекрываем те функции, где у провайдера есть особенности
login
залогиниться
create_contact
For .jobs need additional parameters: jobs_title
, jobs_website
, jobs_industry_type
, is_admin
.
About .jobs parameters see https://www.verisign.com/assets/epp-jobscontact-extension.pdf.
create_domain
For IDN domains you need to specify the language code in the idn_lang
field
See https://www.verisign.com/assets/idn-valid-language-tags.pdf, and https://www.iana.org/domains/idn-tables for .com, .net
restore_domain
First call of restore — request
confirmations_restore_domain
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.
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.
get_registry_info
Registry information for the specified zone
key in params: 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'
};
AUTHORS
Vadim Likhota <vadiml@cpan.org>
COPYRIGHT
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.