рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореИрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреЛрдореЗрди рдЦрд░реАрджрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЬрд╛рд░ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде DNS рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХреАред рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рд╕рд░рд▓ рдФрд░ рдбреЛрдореЗрди рд╕рд╕реНрддрд╛ рд╣реЛ - рдпрд╣ рд╕рдВрддреБрд▓рди рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛ред
рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдпрд╣рд╛рдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡реЗрджрдХреЛрдВ рдХреЛ рд╕рд░реНрдХрд▓ рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛:
рдХрдИ рдиреЗ рдмрд╛рдж рдХреА рд╕рд▓рд╛рд╣ рджреА, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдХреЗрд╡рд▓ DNS рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореБрдЭреЗ рд╡рд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдЦрд░реАрджрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдкрд╣рд▓рд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ - рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдЪрдЯреАрдЯреАрдкреА рд╣реИрдбрд░
рдПрдХреНрд╕-рдбреАрдПрдирдПрд╕рдЗрдореНрдкрд▓-рдЯреЛрдХрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди HTTP рдореВрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рд╣реИред рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рд░реВрдк рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╣реИ - рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред рдЙрддреНрддрд░ JSON (XML рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ) рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдЖрдВрдЦ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░рддрд╛ рд╣реИ, рдХреАрдордд рдХреЛ рдЫреЛрдбрд╝рдХрд░ -
.com рдбреЛрдореЗрди рд▓рд╛рдЧрдд
$ 14 / y рд╡рд╣рд╛рдВ ред рдЬрд╛рдирдХрд╛рд░ рд▓реЛрдЧ рд╕рдордЭреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рдЬрдм рдореИрдВрдиреЗ
http://www.namecheap.com/ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рд╛ред рдФрд░ рдЦрд░реАрджрд╛рд░ рдХреА рдУрд░ рд╕реЗ - рдХреАрдорддреЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рдпрд╣ рдмрд╛рдЬрд╛рд░ рдореЗрдВ 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╣реИ (dnsimple.com рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдорд╛рдг рддрд┐рдерд┐ рджреА рдЧрдИ рд╣реИ: 07 рдЕрдкреНрд░реИрд▓ 2010 17:32:00 - рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдбреЛрдореЗрди рдЖрдИрдбреА рдЬрдм рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдерд╛) рдХреНрд╖реЗрддреНрд░ 3000)ред рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдУрд░ рд╕реЗ: XML рдХреНрд╡реЗрд░реАрдЬрд╝, рд▓реЗрдХрд┐рди рд╕рдВрд░рдЪрдирд╛ рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реИред рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реА рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЬреЛ рдкрд╕рдВрдж рдЖрдпрд╛ рд╡рд╣ рдпрд╣ рдерд╛ рдХрд┐ рд╡реЗ рдПрдХрдорд╛рддреНрд░
рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдереЗ рдЬреЛ рд╕рднреА рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдереЗред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдореЗрдВ $ 9,000 рд╣реИрдВ рдФрд░ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦрд░реАрдж, рдирд╡реАрдиреАрдХрд░рдг, рдкреБрдирд░реНрд╕рдХреНрд░рд┐рдпрдг, рдЖрджрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдПред DNsimple рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдирдВрдмрд░ рджрд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ - рд▓реЗрдХрд┐рди рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреНрдпрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдХрд┐рд╕реА рдбреЛрдореЗрди рдХреЗ
рд╣реЛрд╕реНрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдЧреИрд░-рдорд╛рдирдХ рдорд╛рди (рди рдХреЗрд╡рд▓ рдП, CNAME, AAAA, рдЖрджрд┐) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ - рдПрдХ "
URL " рднреА рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдбреЛрдореЗрди рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд URL (рдордирдорд╛рдирд╛) рддрдХ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рд╕рднреА DNS рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИред
рдФрд░ рдпрд╣ рдкреНрд░рджрд╛рддрд╛ рдЕрдХреНрд╕рд░ рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ рдХреВрдкрди рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (
рдПрдкреАрдЖрдИ рдореЗрдВ рдЗрди рдХреВрдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ ) рдФрд░ рдкрджреЛрдиреНрдирддрд┐ рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддрд╛ рд╣реИ (рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЫреВрдЯ рджреА рдЧрдИ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдбреЛрдореЗрди рдХреЛ GoDaddy рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдж рдХреЗ SOPA рдкрджреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред
рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ
рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрдмреНрд▓рд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
github.com рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реИ (рдбреНрд░рдо рджреНрд╡рд╛рд░рд╛ рдЧреНрд░рд╛рд╣рдХ)ред
DNSProvider рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ: NamecheapProvider, рдЬрд╣рд╛рдВ рдбреЛрдореЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ - рдЦрд░реАрдж, рдЕрдкрдбреЗрдЯ рд░рд┐рдХреЙрд░реНрдб, рдкреБрдирд░реНрд╕рдХреНрд░рд┐рдпрдиред рдореЙрдбрд▓ рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЦреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╕реНрдерд┐рдд рд╣реИрдВ: рдбреЛрдореЗрди, рдбреЛрдореЗрдирд░реЙрд░реНрдб, рд░рд┐рдХреЙрд░реНрдб рдЯрд╛рдЗрдкред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдХреНрд╡реЗрд░реА рдХрдХреНрд╖рд╛рдПрдВ, рдФрд░ xml рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░реНрд╕рд░ рд╣реИрдВред
рдЖрдзрд╛рд░ рдЕрдиреБрд░реЛрдз рд╡рд░реНрдЧ:
public abstract class DNSBaseRequest { private List<NameValuePair> params = new ArrayList<NameValuePair>(); protected DNSBaseRequest(Properties properties) { params.add(new BasicNameValuePair("ApiUser", properties.getProperty("api.login"))); params.add(new BasicNameValuePair("ApiKey", properties.getProperty("api.key"))); params.add(new BasicNameValuePair("UserName", properties.getProperty("api.login"))); params.add(new BasicNameValuePair("ClientIp", properties.getProperty("client.ip")));
рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рд╡рд░реНрдЧ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ
getCommand рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:
public class DomainReactivateRequest extends DNSBaseRequest{ public DomainReactivateRequest(String domainName, Properties properties) { super(properties); addParam(new BasicNameValuePair("DomainName", domainName)); } @Override protected String getCommand() { return "namecheap.domains.reactivate"; } }
рдкрд╛рд░реНрд╕рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕:
public interface XmlResponseParser<T> { T parse(String xml); }
рдФрд░ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рд╕реЗ рдбреЛрдореЗрди рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
public class DomainsListParser extends DefaultHandler implements XmlResponseParser<ArrayList<Domain>> { private static final Logger log = LoggerFactory.getLogger(DomainsListParser.class); private SAXParser parser; private ArrayList<Domain> result; public DomainsListParser() throws Exception{ SAXParserFactory factory = SAXParserFactory.newInstance(); parser = factory.newSAXParser(); result = new ArrayList<Domain>(); } public ArrayList<Domain> parse(String xml) { try { parser.parse(new InputSource(new StringReader(xml)), this); } catch(Exception e){ log.error("Error in parsing string.", e); } return result; } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("Domain".equalsIgnoreCase(qName)){ Domain domain = new Domain(Long.parseLong(attributes.getValue("ID")), attributes.getValue("Name")); domain.setCreateDate(attributes.getValue("Created")); domain.setExpireDate(attributes.getValue("Expires")); result.add(domain); } } }
рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде, рдЙрддреНрддрд░ рджреЗрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдХрдХреНрд╖рд╛ рдХреЛ рдЬреЗрдирд░рд┐рдХ рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
public class ProviderOperator { private static final Logger log = LoggerFactory.getLogger(ProviderOperator.class); private DNSRequestProcessor dnsRequestProcessor; public ProviderOperator(DNSRequestProcessor dnsRequestProcessor) { this.dnsRequestProcessor = dnsRequestProcessor; } public <T, S extends T> T process(DNSBaseRequest dnsRequest, XmlResponseParser<T> parser, S defaultResult) { T result = defaultResult; try { String xml = dnsRequestProcessor.get(dnsRequest); log.debug("Response: {}", xml); result = parser.parse(xml); } catch (Exception e) { log.error("Error in parse", e); } return result; } }
рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрддрд╛ рд╣реИ рдФрд░ xml рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдПрдХ рдЕрдиреБрд░реЛрдз рд╡рд░реНрдЧ, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░реНрд╕рд░ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд╢рдГ рдкреНрд░рджрд╛рддрд╛рдУрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред NamecheapProvider рдлрд╝рдВрдХреНрд╢рдиред
рдЕрдВрдд рдореЗрдВ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдиреА
www.namecheap.com рдХреА рдПрдХ рдкрд░рдВрдкрд░рд╛ рд╣реИ - рд╣рд░ рд╕рд╛рд▓ рд╡реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЯреНрд╡рд┐рдЯрд░ рдореИрд░рд╛рдерди рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░рддреЗ рд╣реИрдВред 48 рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░ 48 рд╕рд╡рд╛рд▓ рдкреВрдЫреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд░ рдШрдВрдЯреЗ, рдкрд┐рдЫрд▓реЗ рдкреНрд░рд╢реНрди рдХрд╛ рд╕рд╣реА рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдХреЛ рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреЗ рдЦрд╛рддреЗ рдореЗрдВ рдкреИрд╕рд╛ рд╣реИ (рдбреЛрдореЗрди рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ iPad2 рдХреА рдПрдХ рдЬреЛрдбрд╝реА - рд╕рдмрд╕реЗ рдХреНрд╡рд┐рдЬрд╝ рдХрд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд░рд╕реНрдХрд╛рд░ред рдЗрд╕ рд╡рд░реНрд╖ рдореИрд░рд╛рдерди рдиреЗ рд╕реБрдкрд░ рдмрд╛рдЙрд▓ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ рдЕрдореЗрд░рд┐рдХреА рдЦреЗрд▓реЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдордЬрд╛рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдирдВрдмрд░ рддреАрди рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧ рд░рд╣рд╛ рдерд╛:
"рдХрд┐рд╕ рд╡рд░реНрд╖ рдореЗрдВ рдмрд╛рд░реНрдЯ рд╕реНрдЯрд╛рд░ рдХреЛ рд╡рд┐рд╕реНрдХреЙрдиреНрд╕рд┐рди рдПрдерд▓реЗрдЯрд┐рдХ рд╣реЙрд▓ рдСрдл рдлрд╝реЗрдо рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛"- рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ, рд╡рд╣ рдЕрдкрдиреА рдЬреАрд╡рдиреА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдЧрдПред рдПрдХ рдЕрд▓рдЧ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ, рдпрд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ 1980 рдореЗрдВ рд╣реБрдЖ рдерд╛ред рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдЯреНрд╡реАрдЯ рдХреА рдереАред рдПрдХ рдШрдВрдЯреЗ рдмрд╛рдж, рд╕рд╣реА рдЙрддреНрддрд░ рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рдЯреНрд╡реАрдЯ рдиреЗ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рдХрд░ рджрд┐рдпрд╛ - 1981ред рдЦреИрд░, рдЬрд┐рд╕рдиреЗ рднреА рд╕рдВрджреЗрд╣ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рддрд╛рд░реАрдЦреЗрдВ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВрдиреЗ рдлрд┐рд░ рд╕реЗ рд╡рд╣рд╛рдБ рдЬрд╛рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдореИрдВ рдФрд░ рднреА рдкрд░реЗрд╢рд╛рди рдерд╛ред 1981. рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣рд╛рдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдЖрдВрдЦреЛрдВ рдХреА рд░реЛрд╢рдиреА рдмрдврд╝рд╛рдиреЗ, рдзреНрдпрд╛рди рдмрдврд╝рд╛рдиреЗ рдФрд░ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓рд┐рдпреЛрдВ рдХрд╛ рд╕реНрдЯреЙрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдерд╛ - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдмреБрдЬреБрд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдореИрд░рд╛рдерди рдХреЗ рдЖрдпреЛрдЬрдХ рд╕реЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд╡реАрдЯ рдЖрдпрд╛, рд▓рдЧрднрдЧ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА:
тАЬрдкреНрд░рд┐рдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ, рд╣рдо рдЗрд╕реЗ рдЧрд▓рдд рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рдирддреЗ рд╣реИрдВ - рдпрд╣ рдирд┐рд╖реНрдкрдХреНрд╖ рдЦреЗрд▓ рдХреА рднрд╛рд╡рдирд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рджреЛрд╖реА рдХреЛ рдЕрдпреЛрдЧреНрдп рдард╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ "рдореБрдЭреЗ рдЦреБрд╢реА рд╣реБрдИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рджрд╡рд╛ рдЦрд░реАрджрдиреЗ рдХреА рдЬрд▓реНрджреА рд╣реИред
UPD рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред