使用DNSpod提供的域名+脚本实现动态域名更新

2023-10-30 18:30

本文主要是介绍使用DNSpod提供的域名+脚本实现动态域名更新,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于我们的公网ip是运营商动态分配的,是会动态变化的,因此我们需要注册一个域名,定时将我们动态分配的公网IP修改至域名解析的记录。本教程域名注册使用DNSpod注册,因为他的api比较友好,网址为https://www.dnspod.cn/。

在内网服务器上编写脚本并运行,根据域名注册商提供的api,定时更新我们的公网ip,可以更新ipv6或者ipv4地址,dnspod的api里就有提供

DNSpod域名配置

登录dnspod,点击账号中心,选择api密钥,选择DNSPodToken创建密钥,创建密钥时记得复制保存好对应的密钥,生成后是不可见的了,生成后的密钥如下所示:
在这里插入图片描述
查看域名对应的domain_id,在控制台-我的域名-域名设置上查看domain_id
在这里插入图片描述
在控制台-我的域名-记录管理处新增一条解析记录,可以添加ipv4或者ipv6记录,具体配置如下所示
在这里插入图片描述
使用刚刚保存的loginToken与domain_id作为参数去查询解析记录,查看并保存对应的记录的id,具体api发送与结果图,如下图所示(可以使用的是postman去发送,也可直接使用curl去发送):

curl发送如下所示

curl https://dnsapi.cn/Record.List -d "login_token=xxx&format=xml&domain_id=xxx"

在这里插入图片描述

也可以用postman发工具发,推荐用postman发
在这里插入图片描述

脚本配置

拿到对应的loginToken,domain_id与记录id(record_id)后,将对应的值填入脚本中,具体需要修改的地方如下图所示
在这里插入图片描述
具体的脚本代码:

#!/bin/sh
#ddns by ddcd
#生成的loginToken填入此处
login_token="xxxxxx"
#将查询的domain_id填入此处
domain_id="xxxxxx"
#将查询的记录id填入此处
record_id="xxxxxx"
# 解析类型,A为ipv4,AAAA为ipv6
record_type="A"
#将查询的对应的解析记录的前缀填入此处
sub_domain="control"
#如果不需要直接后台运行,使用crond定时启动的话可以直接将该循环(while true ,do ,sleep,done)语句所在行去掉
#后台运行可以使用nohup ./xx.sh >xx.log 2>&1 &
while true
doecho "获取本地公网IP......"#此处使用cip.cc做公网ip查询,会脚本的同学也可以将它改为获取本地的ipv4或者ipv6公网ipip_addr_local=`curl cip.cc|head -1|awk '{print $3}'`echo "本地公网IP:$ip_addr_local"echo "获取DDNS解析IP......"ip_addr_dns=`curl https://dnsapi.cn/Record.Info -d "login_token=${login_token}&format=json&domain_id=${domain_id}&record_id=${record_id}&remark="|awk -F '"value"' '{print $2}'|awk -F "\"" '{print $2}'`  echo "DDNS解析IP:$ip_addr_dns"if [ "$ip_addr_local" = "$ip_addr_dns" ]thenecho DDNS解析IP与本地公网IP相同,不需要更新elseecho DDNS解析IP与本机IP不同,更新DDNS解析IP为本地公网IP......ret_code=`curl https://dnsapi.cn/Record.Modify -d "login_token=${login_token}&format=json&domain_id=${domain_id}&record_id=${record_id}&record_type=A&record_line=默认&sub_domain=${sub_domain}&value=${ip_addr_local}&mx=0"|awk -F '"code"' '{print $2}'|awk -F "\"" '{print $2}'`echo $ret_codeif [ "$ret_code" = "1" ]thenecho 修改成功!elseecho 修改失败!fifi sleep 10   
done

本文章首发至B站专栏,专栏地址为
https://www.bilibili.com/read/cv23736701

这篇关于使用DNSpod提供的域名+脚本实现动态域名更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309785

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

Pandas中统计汇总可视化函数plot()的使用

《Pandas中统计汇总可视化函数plot()的使用》Pandas提供了许多强大的数据处理和分析功能,其中plot()函数就是其可视化功能的一个重要组成部分,本文主要介绍了Pandas中统计汇总可视化... 目录一、plot()函数简介二、plot()函数的基本用法三、plot()函数的参数详解四、使用pl

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格