内容转自:分享一个通用的godaddy_DDNS_shell脚本 - OPENWRT专版 - 恩山无线论坛 - Powered by Discuz!本脚本针对ipv6,v4也支持,只需在gdip的解析步骤稍作修改即可。废话不多说,直接开搞。一、拥有一个godaddy注册的域名,至于为什么选择godaddy除了你懂的原因,还 ...恩山无线论坛https://www.right.com.cn/forum/thread-1317904-1-1.html

先进入godaddy的nds解析页面,新建一条A条目用于登入你的主机;

再进入developer.godaddy.com/keys 创建key和Secret并记录下来,注意,Environment需要选择“Production”;

然后编辑一个xxx.sh文件,内容如下:

#!/bin/sh
#这里是你购买的域名
mydomain="domain.xyz"
#这里是dns配置中的名称
myhostname="router"
#这里key和Secret之间注意有个冒号
gdapikey="你的key:你的Secret"
logdest="local7.info"
#另外注意,我这里的ipv4地址,所以使用的是A类型解析,如果是ipv6那么下面所有的A需改为AAAA#这里的地址也是为ipv4服务,ipv4地址为https://api.ipify.org,
#ipv6为myip=`curl -6 "https://api6.ipify.org"`
#也可自行使用别的地址
myip=`curl -s "https://api.ipify.org"`  #从ip服务器获取ip
# myip=`ip route show | grep pppoe-wan | awk 'NR==2 {print $9}'` #从本地获取pppoe-wan口的ip
dnsdata=`curl -s -X GET -H "Authorization: sso-key ${gdapikey}" "https://api.godaddy.com/v1/domains/${mydomain}/records/A/${myhostname}"`
#这里最后的2-9是针对性取得ipv6的字符,dnsdata中的返回字符串是一个json格式,需对齐解析。
# gdip=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2-9` #ipv6
gdip=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2` #ipv4
echo "`date '+%Y-%m-%d %H:%M:%S'` - Current External IP is $myip, GoDaddy DNS IP is $gdip"if [ "$gdip" != "$myip" -a "$myip" != "" ]; thenecho "IP has changed!! Updating on GoDaddy"curl -s -X PUT "https://api.godaddy.com/v1/domains/${mydomain}/records/A/${myhostname}" -H "Authorization: sso-key ${gdapikey}" -H "Content-Type: application/json" -d "[{\"data\": \"${myip}\"}]"logger -p $logdest "Changed IP on ${hostname}.${mydomain} from ${gdip} to ${myip}"
fi

如果openwrt中设置了科学上网,用curl获得的ip地址可能会是外网的地址,那么myip的获取可以改用ip route show的方式,首先在命令行输入ip route show,观察打印出来的信息,并尝试最终输出实际的ip地址,本人的ip采集自wan口,关键词是pppoe-wan,所以可用如下命令实现ip的采集;

ip route show | grep pppoe-wan | awk 'NR==2 {print $9}'

注意,

grep pppoe-wan #用于打印pppoe-wan的信息;

awk #用于处理grep pppoe-wan的文本信息,NR==2意思是指定第二行,print $9的意思是指定第九列;

{print $9}  #打印第九个字段;

最后把这个xxx.sh文件放入系统的定时任务里,比如半小时一次

编辑crontab,如,把脚本保存在/root/ddns.sh中,在命令行输入如下命令:

crontab -e

再输入,当前编辑环境实为vi,crontab的命令格式为‘分 时 天 月 周 usercommand’:

30    *    *    *    * /root/ddns.sh

再输入crontab -l查看已有的定时任务;

另外也可再加入开机执行该脚本,可同样写入crontab中

crontab -e

@reboot sleep 120 ; /root/ddns.sh

其中sleep 120表示开机后等待120秒执行。

如果还想再生成日志,可以将crontab命令改成

@reboot sleep 120 ; /root/ddns.sh >> /root/ddns.log

30    *    *    *    * /root/ddns.sh >> /root/ddns.log

注意:@reboot sleep 120 在openwrt下调试未成功

openwrt使用godaddy的api实现动态域名解析相关推荐

  1. 利用阿里云的API实现动态域名解析

    首先在实现动态域名解析之前要具备两个条件: 第一.你必须有公网 IP,就是你的路由器拨号获取到的 IP 必须是公网 IP (可以参考 ip138 获取到的 IP).长城宽带没有公公网 IP 所以就不用 ...

  2. 【升级版】如何使用阿里云云解析API实现动态域名解析,搭建私有服务器【含可执行文件和源码】...

    原文地址:http://www.yxxrui.cn/article/179.shtml 未经许可请勿转载,如有疑问,请联系作者:yxxrui@163.com 我遇到的问题:公司的网络没有固定的公网IP ...

  3. 如何使用阿里云云解析API实现动态域名解析,搭建私有服务器

    原文地址:http://www.yxxrui.cn/article/116.shtml 未经许可请勿转载,如有疑问,请联系作者:yxxrui@163.com 公司的网络没有固定的公网IP地址,但是能够 ...

  4. Openwrt动态域名解析

    Openwrt动态域名解析 书接上回,做armbian动态域名解析还可以用openwrt大法搞他 Armbian安装Docker之后的100种玩儿法<动态域名解析DDNS自动更新> 1&g ...

  5. openwrt之三:动态域名解析

    花生壳的动态域名解析使用代码进行更新域名仅仅适用于公网用户,也就是你实际路由器的ip地址和你从www.ip138.cn中看到的ip一致的情况,所以http://blog.csdn.net/yufei_ ...

  6. 给Godaddy名下的域名弄个动态域名解析DDNS

    突然发现能提供DDNS的是越来越少了,要么现在收费了,要么已经没这个服务了.好不容易找到的一个国外的DDNS服务,今天发现ping了几次,每次IP都不一样,导致自己的网站一会能打开,一会不能打开.最后 ...

  7. DDNS动态域名解析IPv6地址

    通过公网IPv6地址实现远程访问专栏系列文章: <使用公网IPv6远程访问内网设备> <DDNS动态域名解析IPv6地址> 付费提示! 由于本文教程中需要使用域名和域名解析服务 ...

  8. 玩转群晖NAS——实现IPV6访问并部署动态域名解析程序(Golang)

    目录 玩转群晖NAS--实现IPV6访问并部署动态域名解析程序 相关API文档 修改光猫为桥接模式并通过路由器拨号上网 注册域名 获取AccessKey 编写动态域名解析脚本 将代码编译成linux上 ...

  9. Python+阿里云DNS 搭建DDNS动态域名解析

    家用的动态公网IP在断电以及一段时间后会变化,现在家宽公网IP开网盘以及代理管得越来越严格,已经有检测到被封的案例 上海检测web封停 这让我这种挂种子的PT党(迫真)感到害怕 以前我把国外的免费域名 ...

最新文章

  1. 微信小程序showModel使用注意
  2. 切换debian8系统语言环境
  3. android 4.2 判断桌面快捷,Android 判断桌面是否快捷方式,不存在则创建
  4. jenkins重启 linux_Jenkins节点重启连接失败的解决方法
  5. win7 mysql php apache myadmin_windows下Apache+mysql+php+phpMyAdmin的安装及配置 | 学步园
  6. 白话解说:阻塞和非阻塞,同步和异步
  7. ​给前端开发者的 14 个 JavaScript 代码优化建议
  8. ubuntu-常用命令汇总
  9. 【bzoj2989】数列 KD-tree+旋转坐标系
  10. mysql 5.5.37安装_MySQL5.5.37编译安装详解
  11. Axure热区的使用
  12. [Linux] 非root安装Lefse软件及其数据分析
  13. 计算机管理员权限设置在哪里设置方法,计算机管理员权限在哪里设置 电脑系统如何设置管理员权限...
  14. BZOJ2900 好玩的数字游戏
  15. Android SIM卡识别加载流程
  16. I/Q数据频谱分析仪简介
  17. Ubuntu20.04 conda安出错,成功解决:solving environment:failed with initial frozen solve.Retrying with flexibl
  18. 测试网络SNMP连接的几个方法(我平时调试SNMP程序时用到的几个解决方案)
  19. VS2019_Windows桌面应用程序_01
  20. linux c 内存elf,关于LINUX下的可执行程序ELF(一)

热门文章

  1. Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类
  2. 使用SDEI上报RAS故障
  3. 基于LSTM的哔哩哔哩股票预测·超详细教程
  4. linux 文件格式latin1,Linux下查看文件编码,文件编码格式转换和文件名编码
  5. 三星n7100Android5.1,三星N7100 5.1.1 ROM刷机包 个人适配 附加高级设置 稳定最终版
  6. 2015.12.19初二、三提高组模拟赛 总结
  7. jira 邮件服务器 535,jira小工具与邮件发送
  8. 图说spark工作原理
  9. 怎样取消页眉和页脚?怎样取消页码?怎样从第三页开始添加页码?怎样加注释的角标?怎样写①……⑨以后的数字? 来源: 陶宁♬︵☆︵的日志
  10. 第一课わたしは 田中です。