godaddy域名服务商提供api接口供调用修改域名各个参数配置,同样的dns也属于域名参数的一种,我们可以修改域名dns指向实现域名和ip绑定的变更。同样的我们可以通过脚本的形式定期执行修改实现动态dns服务。

https://developer.godaddy.com/doc/endpoint/domains#/v1/recordReplace

或者

https://developer.godaddy.com/doc/endpoint/domains#/v1/recordReplaceTypeName

该网址是godaddy api文档地址,其中v1/recordReplace则是实现ddns的方法,而recordReplacetypename则更加细分修改的内容,为了方便理解,以recordReplace为例,api范例中recordReplace模板有明确的header信息,header不管是哪个api都需要使用,而recordReplacetypename范例有时候加载不出来,不写header会直接422错误。

如图,这里包含了4个重要组成部分,下图只展示了三个:

四个重要组成部分分别是:

1、调用api路径

2、调用api所需要修改的域名

3、修改的内容(包括请求头信息和body信息都要按照官方的格式来)

4、以json格式发送内容,如果在头中设定格式位xml,可已发送xml,一般都是用json

第四点其实是需要注意的,老手当然会有所认识,新人再没有注意发送格式的情况下用别人的脚本有时候会忽略掉json形式发送,然后返回各种错误;

点击execute执行,官方会给出shell形式的请求范例,如图:

curl范例分析:

1、方法:PUT

2、请求路径:request_url(正式环境去掉ote-)

3、请求头head:-H后面的head信息,我们需要修改的是Authorization对应的自己域名的KEY和PASSWORD

key的生成地址是:https://developer.godaddy.com/keys#

4、修改信息body:-d后面的内容

为了方便,使用python3作为范例:

import requests
import json#修改内容体
records = {#修改的域名"data": "6.6.6.6",#指向方式"name": "@",#指向端口"port": 80,#ttl时间,最小600"ttl": 600,#指向形式"type": "A"
}#请求头
head = {'accept':'application/json','Content-Type':'application/json',#需要改为自己的key和pd'Authorization':'sso-key e4MzyMjQmALJ:KNtBGcWWmL'
}#官方的默认dns信息,统一的,如果不带上,会返回422错误
records_NS01 = {"data": "ns07.domaincontrol.com","name": "@","ttl": 3600,"type": "NS"
}
records_NS02 = {"data": "ns08.domaincontrol.com","name": "@","ttl": 3600,"type": "NS"
}#组件发送信息,信息要转成json形式,可以在发送转也可以生成的时候转,我直接在生成数据转了
put_data =json.dumps([records,records_NS01,records_NS02])print(put_data)
#请求的url,根据自己的域名变更范例的url
url = 'https://api.godaddy.com/v1/domains/hires.com/records'
#或者u1 ='https://api.ote-godaddy.com/v1/domains/hires.com/records/A/@'
#以put形式发送
req = requests.put(url,headers=head,data=put_data)
code = req.status_code
print(code)

结果:

godaddy后台页面:

这里已经实现了通过脚本修改域名的dns,那么如何构建ddns?

我自己的方案是:

树莓派上放了python3的域名ip修改脚本和3分钟执行一次的当前ip地址获取的脚本,如果当前ip和上一次ip地址不一样,这调用修改脚本直接掉godaddy的api修改为当前ip地址实现域名动态的绑定,你要说会有延时?那肯定会有延时了,但对于个人使用,解决了固定ip的大部分需求,对于个人构建nas或者家庭监控都是一个比较省钱的解决方案。

godaddy构建ddns服务相关推荐

  1. 构建微服务时的三大常见错误

      来自:分布式实验室 公众号,作者:解博 想在网上挨骂,最简单的方法就是写点关于微服务架构的东西.每个人对微服务都有自己的一套见解:无论我们是赞扬还是批评,总会有人跳出来强调"你错了&qu ...

  2. 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!...

    写在前面 周末,跟阿里的一个朋友(去年晋升为P9了)聊了很久,聊的内容几乎全是技术,当然了,两个技术男聊得最多的话题当然就是技术了.从基础到架构,从算法到AI,无所不谈.中间又穿插着不少天马行空的想象 ...

  3. 使用Spring MVC 4构建Restful服务

    使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势.首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成.其次,Spring MVC ...

  4. Spring Cloud构建微服务架构-服务网关

    通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: 愿意了解源码的朋友直接求求交流分享技术 一零三八七七四六二六 我们使用Sp ...

  5. 如何基于DDD构建微服务架构

    微服务构建本质上是软件构建过程中长期演进积累的一系列理念.架构原则.工具和最佳实践. 领域驱动设计的软件思想体系和方法论可以用于指导微服务建模.微服务划分.微服务架构设计等相关工作,它可以促使技术人员 ...

  6. 使用Quarkus在Openshift上构建微服务的快速指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! [重磅]到底是什么野生海鲜美味,惹得人们都往泥瓦匠老家买? 作者 | 康仔 来源 | 公众号 ...

  7. Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】

    通过上一篇<分布式服务跟踪(整合logstash)>,我们虽然已经能够利用ELK平台提供的收集.存储.搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利.但是,在ELK平台中的数据分析 ...

  8. Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】

    通过之前的<入门示例>,我们已经为两个由SpringCloud构建的微服务项目 trace-1和 trace-2引入了Spring Cloud Sleuth的基础模块 spring-clo ...

  9. Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)

    通过上一篇<分布式服务跟踪(入门)>的例子,我们已经通过Spring Cloud Sleuth往微服务应用中添加了实现分布式跟踪具备的基本要素.下面通过本文来详细说说实现分布式服务跟踪的一 ...

最新文章

  1. Python中的super()函数
  2. 笔试题:写一个ArrayList 的动态代理类
  3. Java设计模式之行为型:命令模式
  4. python为什么叫爬虫?Python和爬虫有什么关系?
  5. Boost:双图bimap与双向地图的测试程序
  6. caffe2安装篇(二) ubuntu16.04 安装方法
  7. c语言在函数中只执行一次,请问大家,为什么我调用我定义的函数俩次,但是程序只执行一次...
  8. 程序员经常看的开源月刊《HelloGitHub》第 57 期
  9. dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现
  10. 信息论的基本概念(自信息,条件熵,联合熵,互信息,条件互信息)
  11. 管理者必须要精通的六项管理技能
  12. 【PFC】PFC测试指令
  13. 域名备案方法及是否需要备案
  14. ssh框架简单练习----------个人信息管理系统的设计与实现
  15. Flutter第3天--基础控件(上)
  16. linux管道的使用
  17. 记录论文中用到的伪代码
  18. AT1983 BBQ Hard
  19. 基于JSP的网络音乐KTV点歌电台网站
  20. zookeeper相关面试题

热门文章

  1. Dynamics 365 IFD设置反向代理后无法跳转登录页的解决方法
  2. hdoj-1869 六度分离
  3. spssfisher判别分析步骤_spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解...
  4. 用python计算圆周率
  5. 电容器的10大总结!
  6. honoo 门禁控制器参数配置表
  7. Deepin15.11修改分区系统无法启动问题
  8. 普通马甲包app上架App Store5.2.1或3.21被拒原因解析
  9. 毕业论文查重时泄露怎么办?
  10. Python统计字符串中出现次数最多的人名