通过阿里云域名动态解析IP地址

通过阿里云域名动态解析IP地址
项目地址:https://github.com/Mickyxing/aliyundns
脚本语言:Python 2.7

原简介

该项目为使用aliyun动态解析域名脚本,采用python编写,主要适用于在家里自己捣腾服务器的朋友们。由于家用宽带没有固定ip,所以一旦家里的路由器重新拨号了会分配到新的公网ip地址,这会导致在外网无法访问到服务器。东西很简单,一般有点编程知识的人都能看懂,不过在使用前最好再了解下以下几个注意点:
1.请记得保管好你的Access Key,所以我没有在我的代码里直接写Access Key Id和Access Key Secret,我把他们单独放在一个key.json文件中,同时将这个文件排除出git,保证只有我自己知道,因为一旦这两个值泄露了那别人就可以直接修改你的域名了。
2.阿里云通过RecordId来区分每条域名解析记录,但是他们之前文档上对于这个参数的描述只写了“解析记录的ID”,没有写如何获取这条解析记录ID,我去我的阿里云控制台上找了好久都没找到,到后来我突然想到sdk上有获取域名信息的api,我试着用这个果然返回的信息里有这个字段,后来联系了他们客服,他们也说在控制台上没办法找到,也只有通过api获取域名信息才能找到,后来他们也在文档中注明了这个字段的获取方式。
3.更新域名解析主要用到的是阿里云sdk包里aliyun/api/rest/Dns20150109UpdateDomainRecordRequest.py 方法,我为了偷懒直接在这个方法里写死了一些需要固定传入的参数,如果你要对自己的域名做解析的话记得去修改这些参数值。

修改指南

以下文件需要修改:

aliyun/api/rest/Dns20150109UpdateDomainRecordRequest.py
aliyun/api/rest/Dns20150109DescribeDomainRecordInfoRequest.py

需要修改的地方:

self.RR = "ddns" #这里是二级域名,如果是顶级域名需要填 @ (应该是)
self.RecordId = "2333333333333333" #这里是RecordId,需要获取

RecordId获取方式:

在阿里云官方文档里有相关参数,但是不是很清楚,折腾了半天算是搞出来了。
首先登陆阿里云控制台,修改域名解析的页面,F12打开开发者工具,找到Network(网络)选项卡,然后修改一下需要解析的域名,network栏中会出现update.json这一项,点击后会在右方出现信息,往下滑找到Request Payload ,name="recordId"下方的字符应该就是RecordId了。

标签: IP, 动态解析, 阿里云