背景
之前,为了远程访问群晖应用,且为了不使用弱智的ip
访问模式,在阿里云上买了域名,将自己的公网ip
绑定到该域名上。但是呢,由于我使用了路由器拨号,且设置了每周一凌晨重启路由器,保证路由器的性能。因此,每次当路由器重启拨号时,电信都会重新为路由器分配一个新的公网ip
,这就导致不得不在阿里云上更新域名绑定的ip
。之前因为缺乏基本的网络知识,在网上看了一些博客,使用了博客上提供的脚本来自动更新阿里云上的ip
。但是,在使用过程中可能由于脚本的编写问题(没有仔细看脚本,脚本使用php
编写),只能更新www
前缀的记录值,无法更新@
前缀记录值,导致体验十分不好(意思是不够完美哈哈哈)。
今天早晨!我的群晖又无故断开公网了!我十分生气!现在我更强了,也更快了,更是务实的行动派!我决定自己写个定制的脚本来解决这个问题。
解决方案
当着手去研究该问题时,发现事情比我想象的要简单很多。阿里云在产品使用文档中提供了相应的api
接口,在文档中详细地说明了使用方法,并且提供了多种语言的SDK
,甚至还提供了示例。因此,我简单阅读了一下文档,很快就有了解决思路。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZo0ihZS-1666584077179)(https://cdn.jsdelivr.net/gh/ColorlessCube/images@main/16350440598761635044059869.png)]
获取 access key
由于域名是在你的阿里云账户中购买的,为了获取更改你的账号信息的权限,首先需要获取access_key_id
以及access_key
。登录阿里云,点击右上角的头像,如图所示,点击AccessKey管理,跟着指示获取很简单就可以获取。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uRNMQsXT-1666584077183)(https://cdn.jsdelivr.net/gh/ColorlessCube/images@main/16350443766121635044376605.png)]
脚本
ok,假设你已经获取了access_key_id
以及access_key
,下面就可以根据阿里云的api
文档完成脚本的编写工作了。
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import Describ