godaddy构建ddns服务
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服务相关推荐
- 构建微服务时的三大常见错误
来自:分布式实验室 公众号,作者:解博 想在网上挨骂,最简单的方法就是写点关于微服务架构的东西.每个人对微服务都有自己的一套见解:无论我们是赞扬还是批评,总会有人跳出来强调"你错了&qu ...
- 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!...
写在前面 周末,跟阿里的一个朋友(去年晋升为P9了)聊了很久,聊的内容几乎全是技术,当然了,两个技术男聊得最多的话题当然就是技术了.从基础到架构,从算法到AI,无所不谈.中间又穿插着不少天马行空的想象 ...
- 使用Spring MVC 4构建Restful服务
使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势.首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成.其次,Spring MVC ...
- Spring Cloud构建微服务架构-服务网关
通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: 愿意了解源码的朋友直接求求交流分享技术 一零三八七七四六二六 我们使用Sp ...
- 如何基于DDD构建微服务架构
微服务构建本质上是软件构建过程中长期演进积累的一系列理念.架构原则.工具和最佳实践. 领域驱动设计的软件思想体系和方法论可以用于指导微服务建模.微服务划分.微服务架构设计等相关工作,它可以促使技术人员 ...
- 使用Quarkus在Openshift上构建微服务的快速指南
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! [重磅]到底是什么野生海鲜美味,惹得人们都往泥瓦匠老家买? 作者 | 康仔 来源 | 公众号 ...
- Spring Cloud构建微服务架构:分布式服务跟踪(整合zipkin)【Dalston版】
通过上一篇<分布式服务跟踪(整合logstash)>,我们虽然已经能够利用ELK平台提供的收集.存储.搜索等强大功能,对跟踪信息的管理和使用已经变得非常便利.但是,在ELK平台中的数据分析 ...
- Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
通过之前的<入门示例>,我们已经为两个由SpringCloud构建的微服务项目 trace-1和 trace-2引入了Spring Cloud Sleuth的基础模块 spring-clo ...
- Spring Cloud构建微服务架构:分布式服务跟踪(跟踪原理)
通过上一篇<分布式服务跟踪(入门)>的例子,我们已经通过Spring Cloud Sleuth往微服务应用中添加了实现分布式跟踪具备的基本要素.下面通过本文来详细说说实现分布式服务跟踪的一 ...
最新文章
- Python中的super()函数
- 笔试题:写一个ArrayList 的动态代理类
- Java设计模式之行为型:命令模式
- python为什么叫爬虫?Python和爬虫有什么关系?
- Boost:双图bimap与双向地图的测试程序
- caffe2安装篇(二) ubuntu16.04 安装方法
- c语言在函数中只执行一次,请问大家,为什么我调用我定义的函数俩次,但是程序只执行一次...
- 程序员经常看的开源月刊《HelloGitHub》第 57 期
- dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现
- 信息论的基本概念(自信息,条件熵,联合熵,互信息,条件互信息)
- 管理者必须要精通的六项管理技能
- 【PFC】PFC测试指令
- 域名备案方法及是否需要备案
- ssh框架简单练习----------个人信息管理系统的设计与实现
- Flutter第3天--基础控件(上)
- linux管道的使用
- 记录论文中用到的伪代码
- AT1983 BBQ Hard
- 基于JSP的网络音乐KTV点歌电台网站
- zookeeper相关面试题
热门文章
- Dynamics 365 IFD设置反向代理后无法跳转登录页的解决方法
- hdoj-1869 六度分离
- spssfisher判别分析步骤_spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解...
- 用python计算圆周率
- 电容器的10大总结!
- honoo 门禁控制器参数配置表
- Deepin15.11修改分区系统无法启动问题
- 普通马甲包app上架App Store5.2.1或3.21被拒原因解析
- 毕业论文查重时泄露怎么办?
- Python统计字符串中出现次数最多的人名