1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import json,ipaddress 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.client import Client as UtilClient
def update_ip(record:str, domain:str, domain_rr:str, access_key_id:str, access_key_secret:str, record_type:str = "A", endpoint:str="alidns.cn-hangzhou.aliyuncs.com"): try: if record_type == "A": addr = ipaddress.IPv4Address(record) elif record_type == "AAAA": addr = ipaddress.IPv6Address(record) else: return(1, "不支持的记录类型")
if not addr.is_global: return(2, "仅可设置公网单播地址") except ipaddress.AddressValueError: return(3, "非合法IP") client = Alidns20150109Client(open_api_models.Config( access_key_id=access_key_id, access_key_secret=access_key_secret, endpoint=endpoint ))
resp = client.describe_domain_records(alidns_20150109_models.DescribeDomainRecordsRequest(domain_name = domain,rrkey_word=domain_rr)) resp = json.loads(UtilClient.to_jsonstring(resp))['body']['DomainRecords']['Record'][0] client.update_domain_record(alidns_20150109_models.UpdateDomainRecordRequest(rr = domain_rr,type = record_type, record_id = resp['RecordId'], value=record))
return(0, f"更新完成,更新前记录:{resp['RR']}.{resp['DomainName']} -> {resp['Value']}")
error, message = update_ip("0.0.0.0", "crackme.net", "mc", "你的access_key_id", "你的access_key_secret") print(message)
|