DDNS的通讯过程

来源:互联网 发布:杭州钱塘江水质数据 编辑:程序博客网 时间:2024/05/16 12:54

DDNS Client和server之间的一个交互过程是什么样的呢 ?是不是所有的server都遵循一个协议还是有不同的实现?
ddns3运行的时候需要输入一个handle,这个handle是什么内容 ,是我们申请到的域名吗?
主要是不明白发送的命令和返回的结果

后来发现网上有这些内容,无非就是发送http请求来实现动态指向的:
文档都是现成的。

希网动态域名——相关协议

Client的请求应该使用HTTP/1.0以上协议,Server的相应一定为HTTP/1.0

支持HTTP和基于SSL的HTTPS协议

需要事务处理,Client发送完整的请求,并且解析服务器端的相应,保证域名更新的成功

1. 通过URL认证 (所有的在一行)
http://username:password@members.3322.org/dyndns/update?system=dyndns&hostname=yourhost.ourdomain.ext&myip=ipaddress&wildcard=OFF
&mx=mail.exchanger.ext&backmx=NO&offline=NO

2. HTTP GET 请求
1) dyndns, statdns
GET /dyndns/update?system=statdns&hostname=yourhost.ourdomain.ext
&myip=ipaddress&wildcard=OFF&mx=mail.exchanger.ext&backmx=NO
&offline=NO HTTP/1.1
Host: members.3322.org
Authorization: Basic username:pass 
(note: username:pass must be encoded in base64)
User-Agent: myclient/1.0 me@null.net

2) webhop
GET /dyndns/update?system=webhop&hostname=yourhost.ourdomain.ext&url=dest_url
&title=cloak_title&cloak=cloak HTTP/1.1
Host: members.3322.org
Authorization: Basic username:pass 
(note: username:pass must be encoded in base64)
User-Agent: myclient/1.0 me@null.net

3) subdom
GET /dyndns/update?system=subdom&hostname=yourhost.ourdomain.ext&ip1=address1&ip2=address2 HTTP/1.1
Host: members.3322.org
Authorization: Basic username:pass 
(note: username:pass must be encoded in base64)
User-Agent: myclient/1.0 me@null.net


username:password System:All Optional: No
用户名和密码用来登录

system=dyndns|statdns|webhop|subdom System:All Optional: Yes
只能使用二者之一,否则出错。如果没有这个参数,缺省是dyndns
(webhop, subdomain只能使用web更新,而用户自己的域名(3322.org的custom方式)
可以归并到现有的四种方式)

hostname=host.3322.org System:All Optional: No
需要更新的域名

myip=ipaddr System:All Optional: Yes
域名对应的IP。如果不指定,则服务器将选择最佳的IP(一些Proxy会传递客户端的IP,
这会被服务器检测到)。如果传递的地址格式错误,则忽略这个参数,而用服务器检测
到的IP。

wildcard=ON|OFF System:DynDNS, StatDNS Optional: Yes
是否支持通配符,缺省为OFF。ON意为着 *.host.3322.org等同于host.3322.org

mx=mailexchanger System:DynDNS, StatDNS Optional: Yes
指明Mail eXchanger。必须能够解析到一个IP,否则被忽略。如果不提供该参数或者
不能解析到一个IP,mx记录会被删除。

backmx=YES|NO System:DynDNS, StatDNS Optional: Yes
指明前面的mx参数会被设置成备份邮件服务器,即邮件会首先发送到你的机器上,如果
不成功,才会发送到备份邮件服务器上。

offline=YES|NO System:DynDNS Optional: Yes
使域名暂时失效。

url=dest_url System:WebHop Optional: No
webhop指向的URL地址

cloak=YES|NO System:WebHop Optional: Yes
指明webhop时是否使用frame,将转向的url包装起来。缺省是YES

title=cloak_title System:WebHop Optional: Yes
cloak时,frame的标题。缺省是 "Bentium DynDns System"

ip1=address1 System:SubDom Optional: YES
第一个域名服务器的IP地址,必须是正确的IP。如果不指定,则服务器将选择最佳的IP
(一些Proxy会传递客户端的IP, 这会被服务器检测到)。如果传递的地址格式错误,
则忽略这个参数,而用服务器检测到的IP。

ip2=address2 System:SubDom Optional: YES
第二个域名服务器的IP地址,必须是正确的IP