0x00
一直在用Oray的DDNS服务,但是苦于免费DDNS的域名太难看,所以就想尝试下阿里云的云解析API来用作DDNS。
首先,我们需要一个阿里云的域名(废话)。
先扔个自己写好的脚本Aliyun-DDNS。
如果只是想用DDNS的话,用上面的脚本即可。若是想自己写一些更有意思的脚本,那么继续看吧。
0x01
我使用的是Python下的阿里云SDK。
pip install aliyun-python-sdk-alidns
这里的aliyun-python-sdk-alidns
是从阿里云 Python SDK 列表里找到的相应包。
安装好之后,我们就可以开始了。
0x02
from aliyunsdkcore import client
clt=client.AcsClient('Access Key','Acces Secret','RegionId')
这一步是用你的AccessKey
来实例化一个客户端。
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
id_r=DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
id_r.set_DomainName('Domain')
id_r.set_RRKeyWord('RR')
实例化你的查询对象。DomainName值你的域名(xxx.com),RRKeyword指你的子域名(test for test.xxx.com)。
id_re=self.clt.do_action(id_r)
print(id_re)
发送查询请求,并打印出返回数据。
在这个数据包里,我们可以看到你的某个子域名所对应的RecordId
是多少。
0x03
现在我们拥有了子域名的RecordId
,就可以更新我们的对应子域名到新IP了。
import requests
r=requests.get("http://icanhazip.com")
这里获得本地最新IP。
from aliyunsdkalidns.request.v20150109 import UpdateDomainRecordRequest
ur_r=UpdateDomainRecordRequest.UpdateDomainRecordRequest()
ur_r.set_RR('RR')
ur_r.set_RecordId('RecordId')
ur_r.set_Type('A')
ur_r.set_Value('IP')
ur_re=self.clt.do_action(ur_r)
print(ur_re)
很容易理解的一串代码,就是设置参数而已。
若是返回的数据内没有Error,那么便是更改IP成功了。
将脚本设置定时运行,就可以变成DDNS服务了。
0x05
其实还有更多有趣的功能,看下面的API链接就好啦~
(其实觉得阿里云的文档做的真是,。。渣的一笔,看了一早上才知道怎么用)
阿里云解析API概览
感觉学长好多博文的图都挂了QAQ