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

起因

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

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

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

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

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

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

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

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

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

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

97f6bc9eedc8b0da67b505f67031d5d8.png

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

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

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

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

7142de1b4540dbe2d772afb8f90d3216.png

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

22e33ffb1bf9c2644722c0bdd1c37a05.png

  • 调试结果:

99e87f9d0ec59a8be59e61b5102dd7a8.png

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

调试修改解析记录

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

进入调试界面:

输入必填项:

a2f6359ac23a552b9922f6ffd551848c.png

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

居然要我输入验证码!

2d3091067b3338bfc61629e54b97e562.png

出现这样就是成功了!

23358956f07de5bf4a46e2aa810f63f3.png

返回看我们解析设置:

bbec860b9328174af00a47a8b1679d6c.png

已经修改成功了!

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

本地环境准备

获取 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值