Files
DNSPod-Skill/scripts/list_records.py
OpenClaw 7abea390ad Initial commit: Tencent DNSPod DNS deployment skill
- Support for single record deployment
- Batch deployment from JSON config
- Service quick deployment (Web/API/CDN)
- .env file support for secure credentials
- Complete documentation
2026-03-01 11:44:05 +08:00

78 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""
DNS记录列表查询脚本
"""
import os
import sys
import json
from deploy_record import call_api, load_env
# 加载 .env
load_env()
def list_records(domain, record_type=None, subdomain=None):
"""查询DNS记录列表"""
params = {"Domain": domain}
if record_type:
params["RecordType"] = record_type
if subdomain:
params["Subdomain"] = subdomain
try:
result = call_api("DescribeRecordList", params)
records = result.get("Response", {}).get("RecordList", [])
if not records:
print(f"\n没有找到记录")
return []
print(f"\n{'='*80}")
print(f"DNS记录列表: {domain}")
print(f"{'='*80}\n")
# 表头
print(f"{'主机记录':<20} {'类型':<10} {'记录值':<30} {'线路':<10} {'TTL':<8} {'状态':<6}")
print(f"{'-'*80}")
# 记录列表
for record in records:
name = record.get("Name", "")
record_type = record.get("Type", "")
value = record.get("Value", "")
line = record.get("Line", "")
ttl = record.get("TTL", 0)
status = "启用" if record.get("Enabled", 1) == 1 else "禁用"
# 截断过长的值
if len(value) > 28:
value = value[:28] + ".."
print(f"{name:<20} {record_type:<10} {value:<30} {line:<10} {ttl:<8} {status:<6}")
print(f"{'-'*80}")
print(f"总计: {len(records)} 条记录\n")
return records
except Exception as e:
print(f"查询失败: {e}")
return []
def main():
import argparse
parser = argparse.ArgumentParser(description='查询DNS记录列表')
parser.add_argument('--domain', required=True, help='域名(如: example.com)')
parser.add_argument('--type', help='筛选记录类型')
parser.add_argument('--subdomain', help='筛选子域名')
args = parser.parse_args()
list_records(args.domain, args.type, args.subdomain)
if __name__ == '__main__':
main()