python解析接口_aliyun域名解析python api

使用步骤

1、安装 python2.7 (必须)

2、安装阿里云api的python sdkpip install aliyun-python-sdk-httpdns==2.1.0

pip install aliyun-python-sdk-domain

pip install aliyun-python-sdk-alidns

3、阿里云控制台申请 "Access Key" ,并修改脚本中的 "ID" 与 "Secret"

4、更改脚本里面的对应信息:(access_id,access_secret,regiond(cn-shenzhen),DomainName,hostname,Types,IP等等)

5、以下是dns api的脚本:(env1) ?  cat aliyun_dns.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

__author__ = 'chenmingle'

from aliyunsdkcore.client import AcsClient

from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest

from aliyunsdkecs.request.v20140526 import StopInstanceRequest

from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest,AddDomainRecordRequest,DeleteDomainRecordRequest,SetDomainRecordStatusRequest

import json,urllib,re

import sys

# 创建AcsClient实例

client = AcsClient(

"access_id",

"access_secret",

"regiond(cn-shenzhen)"

);

#获取二级域名

def list_domain():

DomainList = DescribeDomainsRequest.DescribeDomainsRequest()

DomainList.set_accept_format('json')

DNSListJson = json.loads(client.do_action_with_exception(DomainList))

for i in DNSListJson['Domains']['Domain']:

print i['DomainName']

#print DNSListJson

#获取域名信息(修改自己的DomainName)

def list_dns_record(DomainName):

DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()

DomainRecords.set_accept_format('json')

DomainRecords.set_DomainName(DomainName)

DomainRecordsJson = json.loads(client.do_action_with_exception(DomainRecords))

print DomainName+':'

#    print DomainRecordsJson

for x in DomainRecordsJson['DomainRecords']['Record']:

RecordId = x['RecordId']

RR = x['RR']

Type = x['Type']

Line = x['Line']

Value = x['Value']

TTL = x['TTL']

Status = x['Status']

txt =  RecordId+' '+RR+' '+Type+' '+Line+' '+Value+' '+str(TTL)+' '+Status

print txt

print '\n'

#更新域名解析(修改的域名DomainName,和要修改的hostname,修改成hostname_new,解析的类型Types,解析的地址IP)

def edit_dns_record(DomainName, hostname, hostname_new, Types, IP):

DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()

DomainRecords.set_accept_format('json')

DomainRecords.set_DomainName(DomainName)

DomainRecordsJson = json.loads(client.do_action_with_exception(DomainRecords))

for x in DomainRecordsJson['DomainRecords']['Record']:

if hostname == x['RR']:

RecordId = x['RecordId']

UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest()

UpdateDomainRecord.set_accept_format('json')

UpdateDomainRecord.set_RecordId(RecordId)

UpdateDomainRecord.set_RR(hostname_new)

UpdateDomainRecord.set_Type(Types)

UpdateDomainRecord.set_TTL('600')

UpdateDomainRecord.set_Value(IP)

UpdateDomainRecordJson = json.loads(client.do_action_with_exception(UpdateDomainRecord))

print UpdateDomainRecordJson

#增加域名解析

def add_dns_record(DomainName, hostname, Types, IP):

AddDomainRecord = AddDomainRecordRequest.AddDomainRecordRequest()

AddDomainRecord.set_DomainName(DomainName)

AddDomainRecord.set_RR(hostname)

AddDomainRecord.set_Type(Types)

AddDomainRecord.set_TTL('600')

AddDomainRecord.set_Value(IP)

AddDomainRecordJson = json.loads(client.do_action_with_exception(AddDomainRecord))

print AddDomainRecordJson

#删除域名解析

def delete_dns_record(DomainName, hostname):

DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()

DomainRecords.set_accept_format('json')

DomainRecords.set_DomainName(DomainName)

DomainRecordsJson = json.loads(client.do_action_with_exception(DomainRecords))

for x in DomainRecordsJson['DomainRecords']['Record']:

if hostname == x['RR']:

RecordId = x['RecordId']

DeleteDomainRecord = DeleteDomainRecordRequest.DeleteDomainRecordRequest()

DeleteDomainRecord.set_RecordId(RecordId)

DeleteDomainRecordJson = json.loads(client.do_action_with_exception(DeleteDomainRecord))

print DeleteDomainRecordJson

#设置域名解析

def set_dns_record(DomainName, hostname, status):

DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()

DomainRecords.set_accept_format('json')

DomainRecords.set_DomainName(DomainName)

DomainRecordsJson = json.loads(client.do_action_with_exception(DomainRecords))

for x in DomainRecordsJson['DomainRecords']['Record']:

if hostname == x['RR']:

RecordId = x['RecordId']

SetDomainRecord = SetDomainRecordStatusRequest.SetDomainRecordStatusRequest()

SetDomainRecord.set_accept_format('json')

SetDomainRecord.set_RecordId(RecordId)

SetDomainRecord.set_Status(status)

SetDomainRecordJson = json.loads(client.do_action_with_exception(SetDomainRecord))

print SetDomainRecordJson

DomainName = sys.argv

for i in DomainName:

if i == sys.argv[0]:

pass

else:

list_dns_record(i)

#edit_dns_record('test.xin', 'test', 'test_ok', 'A', '120.*.*.123')

#add_dns_record('test.xin', 'test', 'A', '120.*.*.123')

#delete_dns_record('test.xin','test_ok')

#set_dns_record('test.xin', 'test_ok', 'DISABLE')

#set_dns_record('test.xin', 'test_ok', 'ENABLE')

list_domain()

最后测试下增加一个test的解析,然后改成test_ok,之后暂停test_ok解析,开启解析,最后删除解析的流程:

增加解析的操作:

阿里云上的解析:

修改的操作:

阿里云上的解析结果:

暂停与开启操作:

最后测试删除解析:

阿里云上的解析已经没有了。这里就实现了平时解析的主要操作,但是还有一些其他操作可以自己扩展下,最终可以自己接到运维平台上那样就不需要运维过多的知道阿里云账号,而且在运维平台上加上操作日志,以防改错后有一个跟踪信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值