安装aliyunSDK核心库: python2:pip install aliyun-python-sdk-core python3:pip install aliyun-python-sdk-core-v3 安装aliyunSDK DNS产品库: pip install aliyun-python-sdk-alidns
运行效果:
代码:
#!/usr/bin/env python # coding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest import json accessKeyId = "<accessKeyId >" accessSecret = "<accessSecret >" domainName = "<domainName >" client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') def main(): request = DescribeDomainRecordsRequest() request.set_accept_format('json') request.set_DomainName(domainName) request.set_PageSize(100) request.set_Type("A") response = client.do_action_with_exception(request) # print(response) response = json.loads(response) print print("Only show A record".center(68)) print("┌──────────────────────────────────────────────────────────────────┐") print("│ Key".ljust(5)), print("│ RR".ljust(15)), print("│ Value".ljust(25)), print("│ RecordId".ljust(25) + "│") records = response["DomainRecords"]["Record"] i = 0 for record in records: i += 1 print("├──────────────────────────────────────────────────────────────────┤") print("│ " + str(i).ljust(3)), print("│ " + str(record["RR"].ljust(10))), print("│ " + str(record["Value"].ljust(20))), print("│ " + str(record["RecordId"].ljust(20)) + "│") print("└──────────────────────────────────────────────────────────────────┘") try: key = int(raw_input("\033[1;33mTyping 'Key' to modify record or typing '0' to add:\033[0m")) except BaseException as e: print "\033[1;31m'Key' must be integer\033[0m" exit() if key: select_record = records[int(key) - 1] print "\033[1;34mSelected: " + select_record["RR"] + "." + select_record["DomainName"] + "\033[0m" RR = raw_input("\033[1;33mTyping new Record or ENTER:\033[0m") if RR: select_record["RR"] = RR Value = raw_input("\033[1;33mTyping new Value or ENTER:\033[0m") if Value: select_record["Value"] = Value try: request1 = UpdateDomainRecordRequest() request1.set_accept_format('json') request1.set_RecordId(select_record["RecordId"]) request1.set_RR(select_record["RR"]) request1.set_Type("A") request1.set_Value(select_record["Value"]) response1 = client.do_action_with_exception(request1) print "RequestId: " + json.loads(response1)["RequestId"] print "\033[1;32mModify Successful!\033[0m" except ServerException as e: print "\033[1;31m" + e.get_error_msg() + "\033[0m" else: new_record = [] RR = raw_input("\033[1;33mTyping new Record:\033[0m") Value = raw_input("\033[1;33mTyping new Value:\033[0m") if RR and Value: try: request2 = AddDomainRecordRequest() request2.set_accept_format('json') request2.set_DomainName(domainName) request2.set_RR(RR) request2.set_Type("A") request2.set_Value(Value) response2 = client.do_action_with_exception(request2) print "RequestId: " + json.loads(response2)["RequestId"] print "\033[1;32mAdd Successful!\033[0m" except ServerException as e: print "\033[1;31m" + e.get_error_msg() + "\033[0m" else: print "\033[1;31mRecord and Value is required\033[0m" if __name__ == '__main__': main()