domain_info.py 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # -*- coding: utf-8 -*-
  2. # This file is auto-generated, don't edit it. Thanks.
  3. import json
  4. import sys
  5. import pandas as pd
  6. from typing import List
  7. from alibabacloud_alidns20150109.client import Client as Alidns20150109Client
  8. from alibabacloud_tea_openapi import models as open_api_models
  9. from alibabacloud_alidns20150109 import models as alidns_20150109_models
  10. from alibabacloud_tea_util import models as util_models
  11. from alibabacloud_tea_util.client import Client as UtilClient
  12. class Sample:
  13. def __init__(self):
  14. pass
  15. @staticmethod
  16. def create_client_domain(
  17. access_key_id: str,
  18. access_key_secret: str,
  19. ) -> Alidns20150109Client:
  20. config = open_api_models.Config(
  21. # 必填,您的 AccessKey ID,
  22. access_key_id=access_key_id,
  23. # 必填,您的 AccessKey Secret,
  24. access_key_secret=access_key_secret
  25. )
  26. # 访问的域名
  27. config.endpoint = f'alidns.cn-beijing.aliyuncs.com'
  28. return Alidns20150109Client(config)
  29. @staticmethod
  30. def domain_list(accessKeyId, accessKeySecret):
  31. domainlist = []
  32. domain_info = []
  33. client = Sample.create_client_domain(accessKeyId, accessKeySecret)
  34. describe_domains_request = alidns_20150109_models.DescribeDomainsRequest(page_size=100)
  35. runtime = util_models.RuntimeOptions()
  36. try:
  37. resp = client.describe_domains_with_options(describe_domains_request, runtime)
  38. data = json.loads((UtilClient.to_jsonstring(resp)))
  39. if data["statusCode"] == 200:
  40. target = data["body"]["Domains"]["Domain"]
  41. for des in target:
  42. domainlist.append(des["DomainName"])
  43. except Exception as error:
  44. UtilClient.assert_as_string(error)
  45. for i in domainlist:
  46. print(i)
  47. describe_domain_records_request = alidns_20150109_models.DescribeDomainRecordsRequest(
  48. domain_name=i,
  49. type='A',
  50. page_size=500
  51. )
  52. try:
  53. resp = client.describe_domain_records_with_options(describe_domain_records_request, runtime)
  54. data = json.loads((UtilClient.to_jsonstring(resp)))
  55. if data["statusCode"] == 200:
  56. target = data["body"]["DomainRecords"]["Record"]
  57. for des in target:
  58. if "Remark" in des:
  59. Describe_dict = {
  60. "主域名": des["DomainName"],
  61. "二级域名": des["RR"],
  62. "备注": des["Remark"],
  63. "域名": f'''{des["RR"]}.{des["DomainName"]}''',
  64. "解析IP": des["Value"]}
  65. domain_info.append(Describe_dict)
  66. else:
  67. Describe_dict = {
  68. "主域名": des["DomainName"],
  69. "二级域名": des["RR"],
  70. "备注": f'无备注信息',
  71. "域名": f'''{des["RR"]}.{des["DomainName"]}''',
  72. "解析IP": des["Value"]}
  73. domain_info.append(Describe_dict)
  74. except Exception as error:
  75. UtilClient.assert_as_string(error)
  76. df = pd.DataFrame(domain_info)
  77. df.to_excel('output.xlsx', index=False)
  78. @staticmethod
  79. def main():
  80. print("start")
  81. if __name__ == '__main__':
  82. Sample.domain_list("id","key")