直接上脚本
#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()
来源:https://www.cnblogs.com/leleyao/p/12215329.html