python阿里云镜像_Python实现阿里云动态DDNS

起因

公司的网是动态外网 IP,既然是动态的那就肯定会变的~

但是人在床上躺,别人 WX 问 IP 啊!!

这不能忍,于是就搞个获取 IP 自动发邮件的功能~

后面要 IP 的人多了,那还是用域名方便!

毕竟 IP 随便变动,域名是不变的嘛~

公司买的有阿里云的域名,于是找来官方文档进行查阅!

下面是根据阿里云的官方文档来测试使用!

ps:域名使用的是我自己的来测试

调试获取域名解析记录列表

首先看我新建的域名:test.mhwy.work

python阿里云镜像_Python实现阿里云动态DDNS_第1张图片

调试地址:https://help.aliyun.com/document_detail/29778.html?spm=a2c4g.11186623.6.667.200e2846x7PUii

要修改域名的记录自然是要先知道是那个自定义的记录名了;

自己起的记录名阿里是不认识的,所以要先获取 RecordId 解析记录ID

  • 进入接口文档,点击调试

python阿里云镜像_Python实现阿里云动态DDNS_第2张图片

  • 首先获取 RecordId 想查看自己那个记录名的,就填进去那个,其他都保持空就行了

python阿里云镜像_Python实现阿里云动态DDNS_第3张图片

  • 调试结果:

python阿里云镜像_Python实现阿里云动态DDNS_第4张图片

这样我们就拿到了我们需要修改记录名的 RecordId

调试修改解析记录

文档连接:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.43.2dd14256Ou3sK2

进入调试界面:

输入必填项:

python阿里云镜像_Python实现阿里云动态DDNS_第5张图片

注:这里有些小伙伴就注意到了 下面已经有了具体实现的代码了~~~

居然要我输入验证码!

python阿里云镜像_Python实现阿里云动态DDNS_第6张图片

出现这样就是成功了!

python阿里云镜像_Python实现阿里云动态DDNS_第7张图片

返回看我们解析设置:

python阿里云镜像_Python实现阿里云动态DDNS_第8张图片

已经修改成功了!

以上我们就是我们调试的过程了

本地环境准备

获取 AccessKey ID和AccessKey Secret

  • 使用阿里云Python SDK,您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。

  • 来源:https://help.aliyun.com/document_detail/53090.html?spm=a2c1g.8271268.10000.132.231edf25DS2YBJ

安装python SDK

完成以下操作安装Python SDK:

  1. 安装SDK核心库。

推荐使用 pip 命令,安装阿里云SDK核心库:

pip install aliyun-python-sdk-core# 这个是必装的
  1. 安装云产品的SDK。

pip install aliyun-python-sdk-alidns# 这里我们使用的是阿里dns 产品,要安装这个 SDK

完整代码

#!/usr/bin/env python#coding=utf-8from aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest# 替换里面的 client = AcsClient('', '', 'cn-hangzhou')request = UpdateDomainRecordRequest()request.set_accept_format('json')# 把我们需要修改的 RecordId 填进去request.set_RecordId("RecordId")# 需要修改的记录名request.set_RR("test")# 需要修改的记录类型request.set_Type("A")# 需要修改的IPrequest.set_Value("10.10.10.10")response = client.do_action_with_exception(request)# python2:  print(response)print(str(response, encoding='utf-8'))

我们可以基于代码二次封装,来实现代码复用~

#!/usr/bin/env python#coding=utf-8from aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequestdef alidns(RecordId, rr, ali_type, ip):    # 替换里面的     client = AcsClient('', '', 'cn-hangzhou')    request = UpdateDomainRecordRequest()    request.set_accept_format('json')    # 把我们需要修改的 RecordId 填进去    request.set_RecordId(RecordId)    # 需要修改的记录名    request.set_RR(rr)    # 需要修改的记录类型    request.set_Type(ali_type)    # 需要修改的IP    request.set_Value(ip)    response = client.do_action_with_exception(request)    # python2:  print(response)    print(str(response, encoding='utf-8'))

参考文档:云解析 DNS

https://help.aliyun.com/product/29697.html?spm=a2c4g.11186623.6.540.56fd1cebi4vaLI

Python SDK

https://help.aliyun.com/document_detail/53090.html?spm=a2c1g.8271268.10000.132.231edf25DS2YBJ

阿里云 SDK GitHub

https://github.com/aliyun/aliyun-openapi-python-sdk?spm=a2c4g.11186623.2.15.337151c1z1Q37u

你可能感兴趣的:(python阿里云镜像)