心 空

  • Tools
Ricky Hao
  1. 首页
  2. Linux
  3. 正文

阿里云Python云解析DDNS脚本

5 8 月, 2016 4467点热度 0人点赞 1条评论

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概览

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: linux python
最后更新:5 8 月, 2016

Ricky

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • liu1l

    感觉学长好多博文的图都挂了QAQ

    22 8 月, 2016
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

    COPYRIGHT © 2025 心 空. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang