这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
api [2011/08/04 17:08] refactor 创建 |
api [2011/08/04 22:04] refactor 移除 |
||
---|---|---|---|
行 1: | 行 1: | ||
- | 小辣椒动态域名更新API | + | ====== |
- | Client的请求应该使用HTTP/ | + | 通过小辣椒API,您可以很容易开发出动态域名客户端,或者将动态域名功能集成到自己的设备中。 |
- | 需要事务处理,Client发送完整的请求,并且解析服务器端的相应,保证域名更新的成功 | + | 任何小辣椒的账户,都可以使用动态域名API,如果您还没有注册小辣椒,请[[http:// |
- | 1. 通过URL认证 (所有的在一行) | ||
- | http:// | ||
- | 2. HTTP GET 或 HTTP POST 请求 | + | ===== 介绍 ===== |
- | 1) dyndns, statdns | + | * Client的请求应该使用HTTP/1.0以上协议,Server的响应一定为HTTP/1.0 |
- | GET / | + | |
- | Host: members.3322.org | + | |
- | Authorization: | + | |
- | User-Agent: myclient/1.0 me@null.net | + | |
- | 2) webhop | + | * Client 和 Server, |
- | GET /dyndns/update? | + | |
- | Host: members.3322.org | + | * 需要事务处理,Client发送完整的请求,并且解析服务器端的相应,保证域名更新的成功。 |
- | Authorization: | + | |
- | User-Agent: myclient/ | + | * 如果请求失败,则需要延时一段时间(推荐1分钟)进行重试,直到域名更新成功。 |
+ | |||
+ | * 更新请求的触发,有两种方式: | ||
+ | |||
+ | 事件驱动,客户端侦听系统的IP请求变化事件,一旦改变了IP,立即发起更新请求,推荐这种方式,更新没有延时。 | ||
+ | |||
+ | 定时更新,每隔一定时间,发起更新请求,注意两次间隔时间不能短于1分钟(收费用户不能短于15秒),如果连续3次以上频繁请求,该域名会被系统自动封堵,返回 abuse 代码。 | ||
+ | |||
+ | * IP的变化检测,可以采用 web 方式进行检测,客户端可以访问 http://ip.3322.net 获取自己的IP,两次请求返回的IP变化了,就发起更新请求。注意访问 http://ip.3322.net 的两次间隔时间不能短于1分钟,如果连续3次以上频繁请求,该域名会被系统自动封堵 | ||
+ | |||
+ | * 使用[[http://www.ietf.org/ | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | ===== 动态域名更新协议 ===== | ||
+ | |||
+ | ==== HTTP请求 ==== | ||
- | 3) subdom | + | < |
- | GET / | + | GET / |
Host: members.3322.org | Host: members.3322.org | ||
Authorization: | Authorization: | ||
User-Agent: myclient/ | User-Agent: myclient/ | ||
+ | </ | ||
- | 一些参数的注意: | + | ==== 参数说明 ==== |
- | * username: | + | |
- | 用户名和密码用来进行身份认证,必须使用 base64进行编码 | + | |
- | * User-Agent | + | * username:password |
- | 客户端名称、版本,需要根据设备类型、名称、特征进行自定义,不要使用示范中的名称,否则可能被封堵 | + | 该参数必选, |
+ | * hostname=host.3322.org | ||
+ | 该参数必选, | ||
- | * system=dyndns|statdns|webhop|subdom System: | + | * myip=ipaddr |
- | 只能使用四者之一,否则出错。如果没有这个参数,缺省是dyndns | + | 该参数可选, 域名对应的IP。如果不指定,则服务器将选择最佳的IP(一些Proxy会传递客户端的IP, |
- | + | ||
- | * hostname=host.3322.org System:All Optional: No | + | |
- | 需要更新的域名 | + | |
- | + | ||
- | * myip=ipaddr System: | + | |
- | 域名对应的IP。如果不指定,则服务器将选择最佳的IP(一些Proxy会传递客户端的IP, | + | |
这会被服务器检测到)。如果传递的地址格式错误,则忽略这个参数,而用服务器检测 | 这会被服务器检测到)。如果传递的地址格式错误,则忽略这个参数,而用服务器检测 | ||
到的IP。 | 到的IP。 | ||
- | * wildcard=ON|OFF | + | * wildcard=ON|OFF |
- | 是否支持泛域名(通配符),缺省为OFF。ON意为着 *.host.3322.org等同于host.3322.org | + | 该参数可选, |
- | * mx=mailexchanger | + | * mx=mailexchanger |
- | 指明Mail eXchanger。必须能够解析到一个IP,否则被忽略。如果不提供该参数或者 | + | 该参数可选, |
不能解析到一个IP,mx记录会被删除。 | 不能解析到一个IP,mx记录会被删除。 | ||
- | backmx=YES|NO | + | * backmx=YES|NO |
- | 指明前面的mx参数会被设置成备份邮件服务器,即邮件会首先发送到你的机器上,如果 | + | 该参数可选, |
不成功,才会发送到备份邮件服务器上。 | 不成功,才会发送到备份邮件服务器上。 | ||
- | offline=YES|NO | + | * offline=YES|NO Optional: Yes |
- | 使域名暂时失效。 | + | 该参数可选, |
+ | |||
+ | |||
+ | ==== 返回值 ==== | ||
+ | |||
+ | === 更新成功 === | ||
+ | |||
+ | * good | ||
+ | 成功,IP地址已经成功更新,good 后面会跟着所更新的IP地址 | ||
+ | |||
+ | * nochg | ||
+ | 成功,IP地址和上次请求没有变化, | ||
+ | |||
+ | |||
+ | === 更新出错 === | ||
+ | |||
+ | * badauth | ||
+ | 身份认证出错,请检查用户名和密码, | ||
+ | |||
+ | * badsys | ||
+ | 该域名不是动态域名,可能是其他类型的域名(智能域名、静态域名、域名转向、子域名)。 | ||
+ | |||
+ | * badagent | ||
+ | 由于发送大量垃圾数据,客户端名称被系统封杀。 | ||
+ | |||
+ | === 参数出错 === | ||
- | url=dest_url System: | + | * notfqdn |
- | webhop指向的URL地址 | + | 没有提供域名参数,必须提供一个在小辣椒注册的动态域名域名。 |
- | cloak=YES|NO System: | + | * nohost |
- | 指明webhop时是否使用frame,将转向的url包装起来。缺省是YES | + | 域名不存在,请检查域名是否填写正确。 |
- | title=cloak_title System: | + | * !donator |
- | cloak时,frame的标题。缺省是 " | + | 必须是收费用户,才能使用 offline 离线功能。 |
- | ip1=address1 System: | + | * !yours |
- | 第一个域名服务器的IP地址,必须是正确的IP。如果不指定,则服务器将选择最佳的IP | + | 该域名存在,但是不是该用户所有。 |
- | (一些Proxy会传递客户端的IP, 这会被服务器检测到)。如果传递的地址格式错误, | + | |
- | 则忽略这个参数,而用服务器检测到的IP。 | + | |
- | ip2=address2 System: | + | * !active |
- | 第二个域名服务器的IP地址,必须是正确的IP | + | 该域名被系统关闭,请联系小辣椒客服人员。 |
+ | * abuse | ||
+ | 该域名由于段时间大量发送更新请求,被系统禁止,请联系小辣椒客服人员。 | ||
+ | * dnserr | ||
+ | DNS 服务器更新失败 | ||