# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. import json import sys import pandas as pd from typing import List from alibabacloud_alidns20150109.client import Client as Alidns20150109Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_alidns20150109 import models as alidns_20150109_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client_domain( access_key_id: str, access_key_secret: str, ) -> Alidns20150109Client: config = open_api_models.Config( # 必填,您的 AccessKey ID, access_key_id=access_key_id, # 必填,您的 AccessKey Secret, access_key_secret=access_key_secret ) # 访问的域名 config.endpoint = f'alidns.cn-beijing.aliyuncs.com' return Alidns20150109Client(config) @staticmethod def domain_list(accessKeyId, accessKeySecret): domainlist = [] domain_info = [] client = Sample.create_client_domain(accessKeyId, accessKeySecret) describe_domains_request = alidns_20150109_models.DescribeDomainsRequest(page_size=100) runtime = util_models.RuntimeOptions() try: resp = client.describe_domains_with_options(describe_domains_request, runtime) data = json.loads((UtilClient.to_jsonstring(resp))) if data["statusCode"] == 200: target = data["body"]["Domains"]["Domain"] for des in target: domainlist.append(des["DomainName"]) except Exception as error: UtilClient.assert_as_string(error) for i in domainlist: print(i) describe_domain_records_request = alidns_20150109_models.DescribeDomainRecordsRequest( domain_name=i, type='A', page_size=500 ) try: resp = client.describe_domain_records_with_options(describe_domain_records_request, runtime) data = json.loads((UtilClient.to_jsonstring(resp))) if data["statusCode"] == 200: target = data["body"]["DomainRecords"]["Record"] for des in target: if "Remark" in des: Describe_dict = { "主域名": des["DomainName"], "二级域名": des["RR"], "备注": des["Remark"], "域名": f'''{des["RR"]}.{des["DomainName"]}''', "解析IP": des["Value"]} domain_info.append(Describe_dict) else: Describe_dict = { "主域名": des["DomainName"], "二级域名": des["RR"], "备注": f'无备注信息', "域名": f'''{des["RR"]}.{des["DomainName"]}''', "解析IP": des["Value"]} domain_info.append(Describe_dict) except Exception as error: UtilClient.assert_as_string(error) df = pd.DataFrame(domain_info) df.to_excel('output.xlsx', index=False) @staticmethod def main(): print("start") if __name__ == '__main__': Sample.domain_list("id","key")