用户工具

站点工具


api

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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