当前位置:首页 > linux > 正文内容

在树莓派/linux上使用阿里云DNS解析作为DDNS使用

admin8年前 (2017-01-03)linux7121

环境准备

Python的2.7+


SDK安装

使用PIP进行安装

使用如下命令来安装SDK:

sudo pip install aliyun-python-sdk-alidns


通过install完成升级

sudo pip install aliyun-python-sdk-alidns  --upgrade


将下面的代码复制下来并修改脚本中的***“ID”*** ***与“Secret”***


#coding:utf-8
#Auther:视觉℡
#Email:admin@cqroom.cn
#转载请保留出处


from aliyunsdkcore import client
from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest
import json,urllib,re


#替换以下参数
ID="替换我"    
Secret="替换我"
RegionId="cn-hangzhou"  
DomainName="cqroom.cn"
#想要自动修改的主机名和域名类型
HostNameList = ['a']
Types = "A"

clt = client.AcsClient(ID,Secret,RegionId)

#获取公网ip
def GetLocalIP():
    IPInfo = urllib.urlopen("http://ip.chinaz.com/getip.aspx").read()
    IP = re.findall(r"ip:'(.*?)',", IPInfo)[0]
    return IP

#获取域名列表(暂时无用)
def GetDomainList():
    DomainList = DescribeDomainsRequest.DescribeDomainsRequest()
    DomainList.set_accept_format('json')
    DNSListJson = json.loads(clt.do_action(DomainList))
    print DNSListJson

#更新域名ip
def EditDomainRecord(HostName, RecordId, Types, IP):
    UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    UpdateDomainRecord.set_accept_format('json')
    UpdateDomainRecord.set_RecordId(RecordId)
    UpdateDomainRecord.set_RR(HostName)
    UpdateDomainRecord.set_Type(Types)
    UpdateDomainRecord.set_TTL('600')
    UpdateDomainRecord.set_Value(IP)
    UpdateDomainRecordJson = json.loads(clt.do_action(UpdateDomainRecord))
    print UpdateDomainRecordJson

#获取域名信息
def GetAllDomainRecords(DomainName, Types, IP):
    DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
    DomainRecords.set_accept_format('json')
    DomainRecords.set_DomainName(DomainName)
    DomainRecordsJson = json.loads(clt.do_action(DomainRecords))
    for HostName in HostNameList:
        for x in DomainRecordsJson['DomainRecords']['Record']:
            RR = x['RR']
            Type = x['Type']
            if RR == HostName and Type == Types:
                RecordId = x['RecordId']
                print RecordId
                EditDomainRecord(HostName, RecordId, Types, IP)

IP = GetLocalIP()
GetDomainList()
GetAllDomainRecords(DomainName, Types, IP)




建立定时任务:


crontab -e
在打开的文件最后一行添加



*/10 * * * * /usr/bin/python2 /home/py.py
注意: 10为10分钟自动运行



/usr/bin/python2  不要动
 
/home/py.py 你自己的PY脚本路径



扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:https://feelsight.cn/post/29.html

“在树莓派/linux上使用阿里云DNS解析作为DDNS使用” 的相关文章

kali2.0安装完成后全是乱码解决办法

kali2.0安装完成后全是乱码解决办法

kali2.0安装完成后全是乱码,安装时选的是中国-汉语,第一次启动起来就是这个样子问题:是本机系统没有中文语言,所以显示乱码解决办法:终端下执行sudo apt-get install ttf-wqy-zenhei...

centos 7 更改网络设置

centos 7 更改网络设置

使用交互式界面来配置网络。在终端中使用命令: $nmtui...

centos7 安装zabbix客户端并监控

centos7 安装zabbix客户端并监控

 在上面博客中我们已经安装了zabbix的server端,如果我们需要对某台机器进行监控,还需要在被监控的机器上面安装客户端,这样才能进行监控,下面就给大家介绍一下agent端的安装教程   第一、导入源   sudo rpm -ivh http://rep...

树莓派raspbian系统更换国内源

树莓派新版系统更换了专门优化过的桌面环境PIXEL,正好手头有个闲置的TF卡决定刷上新版系统玩玩。下载刷系统过程很多教程页很简单。插卡,上电开机,释放卡上的剩余空间都很正常,因为树莓派官方源访问很慢下一步就是换成国内源,以前一直在用中科大的源,于是开始按照以前的方法修改/etc/apt/sou...

shell ping监控服务器是否死机/方糖通知

有时候服务器经常死机,但是死机我们又没办法知道,这时候需要一个自动脚本来帮助我们监控服务器是否运行 在linux 下 vim ./ip.sh 添加下面的代码并保存退出,设置文件权限 chmod 777 ip.sh #!/bin/bash SCKEY="SCU4316************...

玩客云刷ambian并写入内置存储

玩客云刷ambian并写入内置存储

此教程适用于玩客云全部版本,无视官方限制,直接强刷 --------------准备工作--------------- 1.晶晨s805通刷工具Amlogic USB Burning Tool 2.s805通刷固件 3.putty...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。