安装二次开发库

# pip install aliyun-python-sdk-core
# pip install pyaliyunsdk

导入

import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.acs_exception.exceptions import ClientException

类,成员变量

class CAliyunUtils:#私有类变量__aki = ""__aks = ""__domain = ""# rr = "@" # 可以为 @ www 等 二级域名# type = 'A' # 可以为 A MX CNAME 等# value = ""__client = None__request = None__response = None

初始化函数

    @classmethoddef init(self, AccessKeyId,AccessKeySecret,domain):self.domain = domainself.aki = AccessKeyIdself.aks = AccessKeySecretself.client = AcsClient(self.aki, self.aks, 'cn-hangzhou')self.request = CommonRequest()self.request.set_accept_format('json')self.request.set_domain('alidns.aliyuncs.com')self.request.set_method('POST')self.request.set_version('2015-01-09')self.request.add_query_param('DomainName',self.domain)#print(self.request)

增加一条解析记录

    @classmethoddef act_addDomainRecord(self,rr,type,value):self.request.set_action_name('AddDomainRecord')self.request.add_query_param('RR', rr)self.request.add_query_param('Type',type)self.request.add_query_param('Value',value)try:self.response = self.client.do_action(self.request)return Trueexcept (ServerException, ClientException) as reason:print(reason.get_error_msg())return False

获得一条记录的RecordId

    @classmethoddef act_getRecordId(self, rr_search, type):# 这里注意SubDomain的处理,比较特殊self.request.set_action_name('DescribeSubDomainRecords')self.request.add_query_param('SubDomain', rr_search+"."+self.domain)self.request.add_query_param('Type', type)self.request.add_query_param('DomainName',self.domain)try:self.response = self.client.do_action_with_exception(self.request)jsonObj = json.loads(self.response.decode("UTF-8"))#print(jsonObj)records = jsonObj["DomainRecords"]['Record']recordid = Nonefor each in records:if each['RR'] == rr_search:recordid = each['RecordId']breakreturn recordidexcept (ServerException, ClientException) as reason:print(reason.get_error_msg())return None

更新一条解析记录

    @classmethoddef act_updateDomainRecord(self,rr,type,value):id_recorder = self.act_getRecordId(rr,type)if(id_recorder != None):self.request.set_action_name('UpdateDomainRecord')self.request.add_query_param('RecordId', id_recorder)self.request.add_query_param('RR', rr)self.request.add_query_param('Type',type)self.request.add_query_param('Value',value)try:self.response = self.client.do_action_with_exception(self.request)return Trueexcept (ServerException, ClientException) as reason:# 阿里云脑子有毛病吧,不存在的记录Update个屁啊,这叫什么异常if(reason.get_error_msg() == "The DNS record already exists."):return Trueprint(reason.get_error_msg())return False

用法

    a = CAliyunUtils()# 关于这里用到AccessKey和密码,在自己的阿里云账户里查a.init("Xsadjfoas","Sdsfsldf","xxx.com")a.act_getRecordId("@","A")a.act_updateDomainRecord("@","A",get_ip())

参考

# 阿里云,云解析的python文档
# https://next.api.aliyun.com/api-tools/sdk/Alidns?language=python# 阿里云关于CommonRequest的调用
# https://help.aliyun.com/document_detail/61476.html# 阿里云,修改解析记录文档
# https://help.aliyun.com/document_detail/29774.html

阿里云,DNS(云解析),封装类相关推荐

  1. 阿里云DNS动态解析:解决内网服务外网访问

    阿里云DNS动态解析:解决内网服务外网访问 目录 注册阿里云账号获取AccessKeyId,AccessKeySecret并授权 阿里云关于DNS解析的SDK及API文档 代码实现 目录 注册阿里云账 ...

  2. JAVA实现对阿里云DNS的解析管理

    1.阿里云DNS的SDK依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>tea-op ...

  3. 利用python实现修改阿里云DNS值解析

    Python代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*-import json import yaml import sys from aliyu ...

  4. 通过java springboot实现阿里云dns动态解析

    目录 1.创建一个springboot项目: 2.添加依赖 3.添加代码 4.创建定时任务 5.获取token 6.修改配置 如果你有公网ip,或者可以通过ipv4地址访问设备,那到这一步就可以跳转到 ...

  5. 阿里云 DNS 新增云上线路的智能解析功能

    传统解析 VS 智能解析 我们知道,传统DNS解析方式,无需判断访问者来源,会随机选择其中一个IP地址返回给访问者.然而,这样的方式,已经不能满足现今互联网用户的访问需求.因此,DNS智能解析应运而生 ...

  6. Python 实现动态解析阿里云DNS记录

    一.背景 最近有一个需求,公司内网的IP地址会发生变化,导致阿里云域名不能解析到新的IP地址,此时我们需要对阿里云的域名进行更新 二.实现 2.1 获取本地出口的公网IP 2.1.1 通过命令或网页 ...

  7. 家庭公网IP动态解析至阿里云DNS

    家庭公网IP动态解析之阿里云DNS 此服务使用Java开发,每隔10分钟进行阿里云dns解析.如果解析地址未变更,则不出发修改解析操作. 代码 1. AliClient 代码 获取指定域名的解析记录和 ...

  8. 基于阿里云 DNS API 实现的 DDNS 工具

    0.简要介绍 0.1 思路说明 AliDDNSNet 是基于 .NET Core 开发的动态 DNS 解析工具,借助于阿里云的 DNS API 来实现域名与动态 IP 的绑定功能.工具核心就是调用了阿 ...

  9. 域名解析是否生效实时检测(阿里云DNS检测)

    测试域名解析生效的方法有以下四类 域名解析生效测试 本地域名解析生效测试 测试命令dig或nslookup 全国各地运营商解析生效测试 域名解析生效测试 可帮助用户快速排查域名.DNS.网站问题,点击 ...

  10. 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书

    使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...

最新文章

  1. Vue添加新的响应式属性
  2. SQL LEFT JOIN 关键字
  3. Modbus crc16校验
  4. Java与Http协议
  5. lsqnonlin函数_matlab非线性最小二乘函数
  6. SpringBoot2.1.5 (4)---SpringBoot 常用注解说明
  7. Docker : 在宿主机查看docker使用cpu、内存、网络、io情况
  8. Android初学第9天
  9. 利用python gdal读写遥感影像
  10. unity3d开发记录
  11. win10没有realtek高清晰音频管理器_史上最稳定的win10版本,四大更新内容强势来袭,你敢升级吗?...
  12. linux下使用磁带备份
  13. photoshop怎么旋转图片
  14. 如何免费使用百度文库
  15. ROS学习(18)机器人SLAM功能包——cartographer的安装与测试
  16. 大一新生的pta错题归纳
  17. WebSocket聊天室
  18. 种子搜索神器如何用【详解】
  19. 创建一个考试管理系统
  20. Unity 游戏皇家消消乐Android版

热门文章

  1. opencv报错—error C2872: ACCESS_MASK: 不明确的符号
  2. 传《斗战神》美术创作婉拒暴雪挖角 中国游戏人缺少这份傲骨
  3. 如何实现3D网页游戏?
  4. 苹果IOS开发常用的第三方库总结
  5. 【中科院】分子生物学-朱玉贤第四版-笔记-第11-12讲 基因功能研究技术
  6. Vatti clipping 算法介绍
  7. 用浏览器快速开启Docker的体验之旅
  8. Ant Design Pro 菜单自定义 icon
  9. js加密大全(防止客户端查看自己的js文件)
  10. linux给音乐添加封面,利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)