找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 3587|回复: 8

一个使用DNSPOD做DDNS的脚本

[复制链接]
发表于 2015-3-29 21:17 | 显示全部楼层 |阅读模式
本帖最后由 xiaoyawl 于 2015-4-7 21:02 编辑

========================2015-04-07 21:01:30更新=========================一键配置
  1. wget -q http://www.05hd.com/AUTOdnspodDDNS.sh -O /tmp/AUTOdnspodDDNS.sh && bash /tmp/AUTOdnspodDDNS.sh
复制代码


下面是脚本内容
  1. #!/bin/bash
  2. #########################################################################
  3. # File Name: dnspodDDNS.sh
  4. # Author: LookBack
  5. # Email: 393411264@qq.com
  6. # Created Time: 2015年03月28日 星期六 23时19分00秒
  7. #########################################################################
  8. #
  9. #        利用DNSPOD官方提供的API,自动更新域名解析记录,
  10. #        在Netgear 4300 openwrt和CentOS 6系统上测试完美执行,
  11. #        在其他硬件的openwrt上应该也是可以执行的,
  12. #        非openwrt系统的不保证脚本的兼容性。
  13. #        如有任何BUG 请联系我 393411264@qq.com
  14. #
  15. #########################################################################

  16. #=======================下方是需要修改的参数信息=============================================
  17. #DNSPOD 帐号
  18. DNSPODID="393411264@qq.com"
  19. #DNSPOD 密码
  20. DNSPODPW="www.05hd.com"
  21. #DNSPOD 主域名
  22. DNSPODPD="05h.com"
  23. #DNSPOD 二级域名,可以是多个,如下设置DNSPODSDNM[0-n]。有几个就写几个,把多余的删除
  24. DNSPODSDNM[0]="openwrt141"
  25. DNSPODSDNM[1]="openwrt"
  26. DNSPODSDNM[2]="netgear111"
  27. #=========================下方内容如果不懂请勿修改============================================
  28. CURL=$(which curl)
  29. GetID() {
  30.         $CURL -X POST https://dnsapi.cn/Domain.List -ks -d "login_email=$1&login_password=$2&format=json" | \
  31. awk -F',' '{for(i=1;i<=NF;i++) if($i~/"id":[0-9]+/ || $i~/"name":".*"/) {print $i}}' | \
  32. awk '{if (NR%2==0){print $0} else {printf"%s ",$0}}' | sed 's/"domains":\[//' | \
  33. awk -F':| |"' '{print $9,$4}' > /tmp/dnspodDomain
  34.         while read line; do
  35.                 if [ "$(awk '{print$1}' <<< $line)A" = "${DNSPODPD}A" ]; then
  36.                         DNSPODPDID=$(awk '{print$2}' <<< $line)
  37.                         break
  38.                 fi
  39.         done < /tmp/dnspodDomain

  40.         $CURL -X POST https://dnsapi.cn/Record.List -ks -d "login_email=$1&login_password=$2&format=json&domain_id=$DNSPODPDID" | \
  41. sed 's/.*},"records":\[//' | awk -F',' '{for(i=1;i<=NF;i++) if($i~/"id":"[0-9]+"/ || $i~/"name":".*"/) {print $i}}' | \
  42. awk '{if (NR%2==0){print $0} else {printf"%s ",$0}}' | awk -F'"' '{print $8,$4}' > /tmp/dnspodRecord
  43.         while read line; do
  44.                 for i in `seq 1 ${#DNSPODSDNM[@]}`; do
  45.                         i=$[$i-1]
  46.                         [ "$(awk '{print$1}' <<< $line)A" = "${DNSPODSDNM[$i]}A" ] && DNSPODSDID[$i]=$(awk '{print$2}' <<< $line) && break
  47.                 done
  48.         done < /tmp/dnspodRecord
  49. }

  50. StartRun() {
  51.         WanIP=$($CURL -s ip.cn | grep -Eo '([0-9]{1,3}[\.]){3}[0-9]{1,3}')
  52.         DNSPODIP=$($CURL -X POST https://dnsapi.cn/Record.Info -ks -d \
  53. "login_email=$1&login_password=$2&format=json&domain_id=$3&record_id=${DNSPODSDID[0]}" | \
  54. grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')
  55. #awk -F':|,|"' '{for(i=1;i<=NF;i++)if($i~/^([0-9]{1,3}\.){3}[0-9]{1,3}$/){print$i;break}}')
  56.         [ -z $WanIP ] && exit 1
  57.         [ -z $DNSPODIP ] && exit 1
  58.         :> /tmp/dnspodDomain && :>/tmp/dnspodRecord
  59. }

  60. UploadIP() {
  61.         [ "${3}A" != "${4}A" ]
  62.         if [ "A$?" = "A0" ]; then
  63.                 for i in `seq 1 ${#DNSPODSDNM[@]}`; do
  64.                         i=$[$i-1]
  65.                         $CURL -X POST https://dnsapi.cn/Record.Modify -ks -d \
  66. "login_email=$1&login_password=$2&format=json&domain_id=$5\
  67. &record_id= ${DNSPODSDID[$i]}&sub_domain=${DNSPODSDNM[$i]}&value=$3\
  68. &record_type=A&record_line=默认" &>/dev/null
  69.                         echo "$(date "+%F %H:%M:%S") Domain ${DNSPODSDNM[$i]}.$DNSPODPD A Record Update To $3" >> /var/log/dnspod.log
  70.                 done
  71.         fi
  72. }

  73. RUN() {
  74.         GetID $1 $2
  75.         StartRun $1 $2 $DNSPODPDID
  76.         UploadIP $1 $2 ${WanIP} ${DNSPODIP} $DNSPODPDID ${DNSPODSDID[*]}
  77. }

  78. RUN $DNSPODID $DNSPODPW $DNSPODPDID
复制代码
脚本下载地址http://www.05hd.com/dnspodDDNS.sh

支持多个子域名做更新,脚本写的很垃圾  



只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2015-3-29 21:53 | 显示全部楼层
支持,正好需要,谢谢!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-3-30 09:22 | 显示全部楼层
这个是脚本来的,楼主能够说一下全部的过程么,我做这个域名解析的时候报错,谢谢!

点评

错误截图看看  详情 回复 发表于 2015-3-30 10:39
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-30 10:39 来自手机 | 显示全部楼层
错误截图看看
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-30 10:39 来自手机 | 显示全部楼层
静态IP 发表于 2015-3-30 09:22
这个是脚本来的,楼主能够说一下全部的过程么,我做这个域名解析的时候报错,谢谢!

错误截图看看
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-8 22:53 | 显示全部楼层
自顶
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-6-16 23:19 | 显示全部楼层
不会使用你这个脚本啊 放入bin目录 运行提示 not found 文件确实存在的

点评

设置可执行权限 chmod 755 xxx  详情 回复 发表于 2015-6-17 05:40
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2015-6-17 05:40 来自手机 | 显示全部楼层
kcnmbb 发表于 2015-6-16 23:19
不会使用你这个脚本啊 放入bin目录 运行提示 not found 文件确实存在的

设置可执行权限 chmod 755 xxx
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2016-9-20 09:19 | 显示全部楼层
这个有点麻烦,不会用
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-6-27 19:32

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表