forked from ddgth/cf2dns
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaliyun.py
89 lines (82 loc) · 3.81 KB
/
aliyun.py
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Mail: [email protected]
# Reference: https://help.aliyun.com/document_detail/29776.html?spm=a2c4g.11186623.2.38.3fc33efexrOFkT
# REGION: https://help.aliyun.com/document_detail/198326.html
import json
from aliyunsdkcore import client
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
from aliyunsdkalidns.request.v20150109 import DeleteDomainRecordRequest
from aliyunsdkalidns.request.v20150109 import UpdateDomainRecordRequest
from aliyunsdkalidns.request.v20150109 import AddDomainRecordRequest
rc_format = 'json'
class AliApi():
def __init__(self, ACCESSID, SECRETKEY, REGION='cn-hongkong'):
self.access_key_id = ACCESSID
self.access_key_secret = SECRETKEY
self.region = REGION
def del_record(self, domain, record):
clt = client.AcsClient(self.access_key_id, self.access_key_secret, self.region)
request = DeleteDomainRecordRequest.DeleteDomainRecordRequest()
request.set_RecordId(record)
request.set_accept_format(rc_format)
result = clt.do_action(request).decode('utf-8')
result = json.JSONDecoder().decode(result)
return result
def get_record(self, domain, length, sub_domain, record_type):
clt = client.AcsClient(self.access_key_id, self.access_key_secret, self.region)
request = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
request.set_DomainName(domain)
request.set_PageSize(length)
request.set_RRKeyWord(sub_domain)
request.set_Type(record_type)
request.set_accept_format(rc_format)
result = clt.do_action(request).decode('utf-8').replace('DomainRecords', 'data', 1).replace('Record', 'records', 1).replace('RecordId', 'id').replace('Value', 'value').replace('Line', 'line').replace('telecom', '电信').replace('unicom', '联通').replace('mobile', '移动').replace('oversea', '境外').replace('default', '默认')
result = json.JSONDecoder().decode(result)
return result
def create_record(self, domain, sub_domain, value, record_type, line, ttl):
clt = client.AcsClient(self.access_key_id, self.access_key_secret, self.region)
request = AddDomainRecordRequest.AddDomainRecordRequest()
request.set_DomainName(domain)
request.set_RR(sub_domain)
if line == "电信":
line = "telecom"
elif line == "联通":
line = "unicom"
elif line == "移动":
line = "mobile"
elif line == "境外":
line = "oversea"
elif line == "默认":
line = "default"
request.set_Line(line)
request.set_Type(record_type)
request.set_Value(value)
request.set_TTL(ttl)
request.set_accept_format(rc_format)
result = clt.do_action(request).decode('utf-8')
result = json.JSONDecoder().decode(result)
return result
def change_record(self, domain, record_id, sub_domain, value, record_type, line, ttl):
clt = client.AcsClient(self.access_key_id, self.access_key_secret, self.region)
request = UpdateDomainRecordRequest.UpdateDomainRecordRequest()
request.set_RR(sub_domain)
request.set_RecordId(record_id)
if line == "电信":
line = "telecom"
elif line == "联通":
line = "unicom"
elif line == "移动":
line = "mobile"
elif line == "境外":
line = "oversea"
elif line == "默认":
line = "default"
request.set_Line(line)
request.set_Type(record_type)
request.set_Value(value)
request.set_TTL(ttl)
request.set_accept_format(rc_format)
result = clt.do_action(request).decode('utf-8')
result = json.JSONDecoder().decode(result)
return result