首页 > 其他 > 详细

获取aliyun固定类型的domain记录并输出到文件

时间:2020-01-19 20:07:21      阅读:107      评论:0      收藏:0      [点我收藏+]

直接上脚本

#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest
from aliyunsdkalidns.request.v20150109.DescribeDomainsRequest import DescribeDomainsRequest
import  configparser
import  json
import argparse

parser = argparse.ArgumentParser(description=Process some integers.)
parser.add_argument(-t,dest=type,choices=[A,CNAME],required=True,nargs=1)
args = parser.parse_args()



config =  configparser.ConfigParser()

__config = config.read(./config.ini)

class get_dns:
    def __init__(self,region=cn-hangzhou):
        self._Ak = config[aliyun][AK]
        self._Sk = config[aliyun][SK]
        # make client
        self._client = AcsClient(self._Ak, self._Sk, region)
        self.makeDomainList()

    def makeDomainList(self):
        """
        get the  domain  who‘s record  >=1
        """   
        self.DomainList_request = DescribeDomainsRequest()
        self.DomainList_request.set_PageSize(50)
        self.DomainList_response =  self._client.do_action_with_exception(self.DomainList_request)
        self.list_org = json.loads(self.DomainList_response)[Domains][Domain]
        self.domain_list = []
        for i in self.list_org:
            if i[RecordCount] > 0 :
                self.domain_list.append(i[PunyCode])

    def makeRequest(self,domain=ssss,Dtype=args.type[0]):
        self.request = DescribeDomainRecordsRequest()
        self.request.set_accept_format(json)
        self.request.set_PageSize(200)
        self.request.set_DomainName(domain)
        self.request.set_TypeKeyWord(Dtype)
        return self.request
    def makeResult(self):
        with open(/tmp/domain.txt,w+) as self.xxx:
            for i in self.domain_list:
                self.xxx.write(i +  recordNum: )
                j = self.makeRequest(domain=i)
                self.Domain_record_result = self._client.do_action_with_exception(j)
                self.xxx.write(str(len(json.loads(self.Domain_record_result)[DomainRecords][Record])))
                self.xxx.write(\n)
                self.Domain_record_result  = json.loads(self.Domain_record_result)[DomainRecords][Record]
                for j in self.Domain_record_result:
                    self.xxx.write({}.{}  {} 状态: {} 解析地区 {}.format(j[RR],j[DomainName],j[Value],j[Status],j[Line]))
                    self.xxx.write(\n)
                self.xxx.write(#*50)
                self.xxx.write(#*50)
                self.xxx.write(\n*3)


get_1 = get_dns()

get_1.makeResult()

获取aliyun固定类型的domain记录并输出到文件

原文:https://www.cnblogs.com/leleyao/p/12215329.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!