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

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

admin9年前 (2017-01-03)linux8138

环境准备

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脚本路径
阅读剩余的50%

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

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

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

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

centos 7 更改网络设置

centos 7 更改网络设置

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

centos7 安装zabbix客户端并监控

centos7 安装zabbix客户端并监控

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

linux格式化挂载硬盘

linux格式化挂载硬盘

挂载硬盘: 提醒:挂载操作会清空数据,请确认挂载盘无数据或者未使用 第一步:列出所有磁盘 命令:ll /dev/disk/by-path 提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从而排除挂错盘的情况...

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...

使用Docker制作一个CentOS7容器并安装python3

使用Docker制作一个CentOS7容器并安装python3

1.下载centos镜像 docker pull centos:7 2.创建并启动容器 docker run -d --name centos7 --privileged=true -p 10022:22 -p 10080:80 -h testh...

发表评论

访客

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