WeiCN

更新cloudxns的ddns的shell脚本
从dnspod换成cloudxns来解析,由于需要DDNS,之前一直用的 AnripDdns ,换过来之后,找到了...
扫描右侧二维码阅读全文
07
2016/04

更新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就代表更新成功

Last modification:April 29th, 2016 at 09:09 pm

12 comments

  1. yearliny

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

  2. Ivan

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

  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

    1. WeiCN
      @lon

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

  4. lon

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

    1. WeiCN
      @lon

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

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

  5. lon

    这样吗:

    !/bin/sh

    CONFIG=$

    API_KEY="1235123412345"
    SECRET_KEY="123412341234"

    $CONFIG

    1. WeiCN
      @lon

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

      1. lon
        @WeiCN

        哈哈缘分

    2. WeiCN
      @lon

      两个 CONFIG 也不需要,你试试

  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

    1. WeiCN
      @lon

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

Leave a Comment