阿里云,DNS(云解析),封装类
安装二次开发库
# 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(云解析),封装类相关推荐
- 阿里云DNS动态解析:解决内网服务外网访问
阿里云DNS动态解析:解决内网服务外网访问 目录 注册阿里云账号获取AccessKeyId,AccessKeySecret并授权 阿里云关于DNS解析的SDK及API文档 代码实现 目录 注册阿里云账 ...
- JAVA实现对阿里云DNS的解析管理
1.阿里云DNS的SDK依赖 <dependency> <groupId>com.aliyun</groupId> <artifactId>tea-op ...
- 利用python实现修改阿里云DNS值解析
Python代码 #!/usr/bin/env python3 # -*- coding: utf-8 -*-import json import yaml import sys from aliyu ...
- 通过java springboot实现阿里云dns动态解析
目录 1.创建一个springboot项目: 2.添加依赖 3.添加代码 4.创建定时任务 5.获取token 6.修改配置 如果你有公网ip,或者可以通过ipv4地址访问设备,那到这一步就可以跳转到 ...
- 阿里云 DNS 新增云上线路的智能解析功能
传统解析 VS 智能解析 我们知道,传统DNS解析方式,无需判断访问者来源,会随机选择其中一个IP地址返回给访问者.然而,这样的方式,已经不能满足现今互联网用户的访问需求.因此,DNS智能解析应运而生 ...
- Python 实现动态解析阿里云DNS记录
一.背景 最近有一个需求,公司内网的IP地址会发生变化,导致阿里云域名不能解析到新的IP地址,此时我们需要对阿里云的域名进行更新 二.实现 2.1 获取本地出口的公网IP 2.1.1 通过命令或网页 ...
- 家庭公网IP动态解析至阿里云DNS
家庭公网IP动态解析之阿里云DNS 此服务使用Java开发,每隔10分钟进行阿里云dns解析.如果解析地址未变更,则不出发修改解析操作. 代码 1. AliClient 代码 获取指定域名的解析记录和 ...
- 基于阿里云 DNS API 实现的 DDNS 工具
0.简要介绍 0.1 思路说明 AliDDNSNet 是基于 .NET Core 开发的动态 DNS 解析工具,借助于阿里云的 DNS API 来实现域名与动态 IP 的绑定功能.工具核心就是调用了阿 ...
- 域名解析是否生效实时检测(阿里云DNS检测)
测试域名解析生效的方法有以下四类 域名解析生效测试 本地域名解析生效测试 测试命令dig或nslookup 全国各地运营商解析生效测试 域名解析生效测试 可帮助用户快速排查域名.DNS.网站问题,点击 ...
- 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书
使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...
最新文章
- Vue添加新的响应式属性
- SQL LEFT JOIN 关键字
- Modbus crc16校验
- Java与Http协议
- lsqnonlin函数_matlab非线性最小二乘函数
- SpringBoot2.1.5 (4)---SpringBoot 常用注解说明
- Docker : 在宿主机查看docker使用cpu、内存、网络、io情况
- Android初学第9天
- 利用python gdal读写遥感影像
- unity3d开发记录
- win10没有realtek高清晰音频管理器_史上最稳定的win10版本,四大更新内容强势来袭,你敢升级吗?...
- linux下使用磁带备份
- photoshop怎么旋转图片
- 如何免费使用百度文库
- ROS学习(18)机器人SLAM功能包——cartographer的安装与测试
- 大一新生的pta错题归纳
- WebSocket聊天室
- 种子搜索神器如何用【详解】
- 创建一个考试管理系统
- Unity 游戏皇家消消乐Android版
热门文章
- opencv报错—error C2872: ACCESS_MASK: 不明确的符号
- 传《斗战神》美术创作婉拒暴雪挖角 中国游戏人缺少这份傲骨
- 如何实现3D网页游戏?
- 苹果IOS开发常用的第三方库总结
- 【中科院】分子生物学-朱玉贤第四版-笔记-第11-12讲 基因功能研究技术
- Vatti clipping 算法介绍
- 用浏览器快速开启Docker的体验之旅
- Ant Design Pro 菜单自定义 icon
- js加密大全(防止客户端查看自己的js文件)
- linux给音乐添加封面,利用ffmpeg读取音乐文件的专辑信息(包括专辑封面图片)