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


    直接上脚本

    #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('
    ')
                    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('
    ')
                    self.xxx.write('#'*50)
                    self.xxx.write('#'*50)
                    self.xxx.write('
    '*3)
    
    
    get_1 = get_dns()
    
    get_1.makeResult()
  • 相关阅读:
    软件工程——小学生的四则运算(java)
    软件工程——小学生的四则运算
    利用python实现微信小项目
    SQLite3数据库
    爬虫———python
    模拟足球训练
    文件的转换
    学习成绩雷达图
    <dvi>
    vue 锚点跳转防止路径变化后,刷新页面报错的问题
  • 原文地址:https://www.cnblogs.com/leleyao/p/12215329.html
Copyright © 2020-2023  润新知