公司的网是动态外网 IP,既然是动态的那就肯定会变的~
但是人在床上躺,别人 WX 问 IP 啊!!
这不能忍,于是就搞个获取 IP 自动发邮件的功能~
后面要 IP 的人多了,那还是用域名方便!
毕竟 IP 随便变动,域名是不变的嘛~
公司买的有阿里云的域名,于是找来官方文档进行查阅!
下面是根据阿里云的官方文档来测试使用!
ps:域名使用的是我自己的来测试
首先看我新建的域名:test.mhwy.work
调试地址:https://help.aliyun.com/document_detail/29778.html?spm=a2c4g.11186623.6.667.200e2846x7PUii
要修改域名的记录自然是要先知道是那个自定义的记录名了;
自己起的记录名阿里是不认识的,所以要先获取 RecordId
解析记录ID
进入接口文档,点击调试
首先获取 RecordId
想查看自己那个记录名的,就填进去那个,其他都保持空就行了
调试结果:
这样我们就拿到了我们需要修改记录名的 RecordId
文档连接:https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.43.2dd14256Ou3sK2
进入调试界面:
输入必填项:
注:这里有些小伙伴就注意到了 下面已经有了具体实现的代码了~~~
居然要我输入验证码!
出现这样就是成功了!
返回看我们解析设置:
已经修改成功了!
以上我们就是我们调试的过程了
使用阿里云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:
安装SDK核心库。
推荐使用 pip 命令,安装阿里云SDK核心库:
pip install aliyun-python-sdk-core# 这个是必装的
安装云产品的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