1. 요청
요청에 대한 사용자 인증은 HTTP Basic Access Authentication을 이용합니다. 예를 들어 DNSEver 아이디가 test이고 인증코드가 123456이라고 했을때 test 사용자의 다이나믹 DNS 호스트 목록 가져오려면을 아래와 같이 요청합니다.GET /gethost.php HTTP/1.0 Host: dyna.dnsever.com Authorization: Basic dGVzdDoxMjM0NTY= User-Agent: DDNS Client
Authoriztion의 헤더에 'dG?VzdDoxMjM0NTY='는 사용자 아이디와 인증코드를 아래와 같이 encoding한 결과입니다.
// PHP의 경우 base64_encode("test:123456"); // Python의 경우 import base64 base64.b64encode("test:123456") // Perl의 경우 use MIME::Base64; encode_base64('test:123456');
linx, wget 등을 이용하면 쉽게 테스트 할 수 있습니다.
- lynx -source -auth=아이디:인증코드 http://dyna.dnsever.com/gethost.php
- wget -O - --http-user=아이디 --http-passwd=인증코드 http://dyna.dnsever.com/gethost.php
2. 응답
요청에 대한 응답은 일반적으로 아래와 같은 형태입니다.<dnsever> <result type=":type" code=":code" msg=":msg"> </result> </dnsever>
- type : 요청 종류입니다. gethost와 update가 있습니다.
- gethost : 사용자가 보유하고 있는 다이나믹 DNS 호스트 목록 요청에 대한 응답입니다.
- update : 다이나믹 DNS 호스트 업데이트에 대한 응답입니다.
- code : 응답 코드입니다. 요청에 대한 처리 결과를 나타납니다.
- 101 : No ID
- 102 : No AuthCode
- 103 : Login Failed
- 104 : No DDNS Authcode, You Should Create DDNS authcode first
- 201 : Fail to get DDNS HostName List
- 202 : No DDNS Host List
- 203 : DNSEver service checkup
- 210 : Update Failure
- 301 : No Update Host Name
- 302 : Invalid Domain
- 303 : Invalid IP
- 304 : DDNS not registered or Not Your Domain
- 305 : Unknown Option
- 311 : Not DDNS Host, the host is set to WebForwarding or WebParking
- 312 : Does not allow offline
- 320 : Too Many updates sent. Update is allowed once per minute
- 700 : Login Success
- 701 : DDNS Update Success
- 702 : Some DDNS Update failed
- 720 : Update Success
- 721 : Already Updated
- msg : 응답 코드에 대한 메세지입니다.
3. API
3.1 GET /gethost.php
사용자가 보유하고 있는 다이나믹 DNS 호스트 목록을 가져옵니다.GET /gethost.php에 대한 응답
<dnsever>
<result type="gethost" code="700" numOfHosts="2" msg="Login Success" lang="kr">
<host name="bbs.myhome.com" status="ONLINE" ip="XXX.XXX.XXX.XXX"></host>
<host name="www.myhome.com" status="ONLINE" ip="XXX.XXX.XXX.XXX"></host>
</result>
</dnsever>
3.2 GET /update.php&host[:name]=:ip
다이나믹 DNS 호스트 아이피를 업데이트 합니다. host[:name]=:ip에 대한 자세한 설명은 다이나믹 DNS 관리의 이용시 주의사항을 참고 합니다. 업데이트할 호스트명이 길어지면, GET 방식이 아니라 POST 방식으로 요청하는 것이 좋습니다.GET /update.php?host[bbs.myhome.com]&host[www.myhome.com]에 대한 응답 <dnsever> <result type="update" code="701" numOfSuccess="2" numOfFailure="0" msg="DDNS Update Success"> <host name="bbs.myhome.com" code="720" msg="Update Success"></host> <host name="www.myhome.com" code="720" msg="Update Success"></host> </result> </dnsever> }
3.3 GET /getip.php
인터넷에 접속한 IP주소를 알아냅니다.http://dyna.dnsever.com/getip.php와 같이 호출하면 IP주소가 반환됩니다. IP공유기와 같이 내부사설망에서 인터넷접속을 한 IP주소를 알아낼 때 사용하면 됩니다.
0 댓글