安装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()