不忘初心,方得始终.

更新cloudxns的ddns的shell脚本

从dnspod换成cloudxns来解析,由于需要DDNS,之前一直用的 AnripDdns ,换过来之后,找到了 天语空间 的脚本,问题是,如果同时存在相同的解析纪录,会返回多个RECORD ID导致纪录提交失败。
比如解析根域,同时存在MX和TXT等纪录,就会导致API接口返回302错误。
翻阅了一下官方的API文档,发现有个更合适的DDNS接口,可以直接获取客户端的访问IP来作为DDNS的解析IP,修改了一下,现在放出。

项目源码:Github

使用方法

wget https://raw.githubusercontent.com/weicno/cloudxns-ddns/master/cloudxns.sh
wget https://raw.githubusercontent.com/weicno/cloudxns-ddns/master/cloudxns.conf
chmod +x cloudxns.sh

修改cloudxns.conf里面的API信息
然后在cloudxns.sh底部添加要解析的域名信息

例:
解析根域名

DdnsCheck "weicn.org"

解析子域名

DdnsCheck "weicn.org" "www"

测试

/path/to/cloudxns.sh /path/to/cloudxns.conf
{"domain":"weicn.org"}
{"code":1,"message":"success"}
Thu Apr  7 20:50:52 CST 2016 -- Update success

输出Update success就代表更新成功

已有 12 条评论
  1. yearliny

    很棒的作品,我也换用cloudxns了~正需要~

    yearliny [Android 5.1.1 Chrome 53.0.2785.124] 回复
  2. Ivan

    之前也用这个脚本,不过遇到和博主一样的问题了。感谢博主解决了这个问题。

    Ivan [Win10 x64 Chrome 52.0.2743.82] 回复
  3. lon

    感谢,搞定了。

    你的留言系统又报错了哈:

    Fatal error: Uncaught TypeError: Argument 1 passed to Typecho_Common::exceptionHandle() must be an instance of Exception, instance of Error given in /home/weicn.org/var/Typecho/Common.php:235 Stack trace: #0 [internal function]: Typecho_Common::exceptionHandle(Object(Error)) #1 {main} thrown in /home/weicn.org/var/Typecho/Common.php on line 235

    lon [Mac OSX 10_11_4 Safari 601.5.17] 回复
    1. WeiCN

      哈哈,那时候在折腾呢,加了评论区useragent显示 icon_lol.gif

      WeiCN 博主 [Win10 x64 Chrome 49.0.2623.105] 回复
  4. lon

    可以更新,
    这个要怎么解决:
    /cloudxns.sh: line 29: can't create : nonexistent directory

    lon [Win10 x64 Chrome 49.0.2623.112] 回复
    1. WeiCN

      是个BUG,多写了一句保存当前IP,在守护进程的时候用到的
      但是我后来删掉了前面的代码,换成WAN链接成功事件的时候执行脚本,所以导致后面获取不到路径出错

      GitHub里面已经更新了,你只需要删掉
      echo "LAST_IP=\"$IP\"" > $LAST_IP_FILE
      这句就可以了

      WeiCN 博主 [Win10 x64 Chrome 49.0.2623.105] 回复
  5. lon

    这样吗:

    #!/bin/sh

    CONFIG=$

    API_KEY="1235123412345"
    SECRET_KEY="123412341234"

    $CONFIG

    lon [Win10 x64 Chrome 49.0.2623.112] 回复
    1. WeiCN

      我的第一个评论访客,你不评论我还不能发现我的缓存系统有问题,不能正确的刷新~看不到新内容,哈~

      WeiCN 博主 [Win10 x64 Chrome 49.0.2623.105] 回复
      1. lon

        哈哈缘分

        lon [Win10 x64 Chrome 49.0.2623.112] 回复
    2. WeiCN

      两个 CONFIG 也不需要,你试试

      WeiCN 博主 [Win10 x64 Chrome 49.0.2623.105] 回复
  6. lon

    刚好也是从DNSPod转到CloudXNS,之前也是用的AnripDdns,

    刚执行试了下可以正确更新到IP,但是有个错误。

    然后就是两个文件不能集成在一个sh脚本里么,分开没办法添加到梅林的脚本配置里

    root@R6300V2:/jffs/scripts# /jffs/scripts/cloudxns.sh /jffs/scripts/cloudxns.conf
    {"domain":"domain"}
    {"code":1,"message":"success"}
    Wed Apr 13 00:27:56 GMT 2016 -- Update success
    /jffs/scripts/cloudxns.sh: line 35: can't create : nonexistent directory

    lon [Mac OSX 10_11_4 Safari 601.5.17] 回复
    1. WeiCN

      可以,你把在CONFIG到CONFIG之间删掉,替换成cloudxns.conf里面的内容

      WeiCN 博主 [Win10 x64 Chrome 49.0.2623.105] 回复
发表新评论 选择表情