Browse Source

域名信息

gaojiang 2 years ago
parent
commit
a61a6229e8
1 changed files with 94 additions and 0 deletions
  1. 94 0
      domain_info.py

+ 94 - 0
domain_info.py

@@ -0,0 +1,94 @@
+# -*- 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")