def _main(client, ip): from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import * from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import * for rr, domain_name, type_ in config.RECORDS: req = DescribeDomainRecordsRequest() req.set_TypeKeyWord(type_) req.set_DomainName(domain_name) req.set_RRKeyWord(rr) records = json.loads(client.do_action_with_exception(req))['DomainRecords']['Record'] if records: record = records[0] if record['Value'] == ip: logging.debug('%s.%s is already %s', rr, domain_name, ip) else: logging.info('Updating %s.%s from %s to %s', rr, domain_name, record['Value'], ip) update = UpdateDomainRecordRequest() update.set_RecordId(record['RecordId']) update.set_RR(rr) update.set_Type(type_) update.set_Value(ip) client.do_action_with_exception(update) else: logging.warning('No such record %s.%s, skipping for now.', rr, domain_name)
#--------------------------------------------------------------------------------- client = AcsClient(accesskeyid, accesssecret, 'cn-hangzhou') #Aliyun AccessKey #--------------------------------------------------------------------------------- if ipv4 == 'true': #Judging whether IPV4 DDNS is open print('Your IPV4 DDNS is open.') #Describe IPV4 Records describev4 = DescribeDomainRecordsRequest() #Start Describe Domain Records describev4.set_accept_format('json') describev4.set_DomainName(domain) #Main Domain describev4.set_RRKeyWord(rr) #Your RRKeyWord describev4.set_TypeKeyWord("A") #Your Record Type describebackv4 = client.do_action_with_exception( describev4) #Get Back JSON # python2: print(response) print(str(describebackv4, encoding='utf-8')) #Print JSON #--------------------------------------------------------------------------------- #Read IPV4 JSON recordlistv4 = json.loads(describebackv4) #Read Back JSON recordidv4 = recordlistv4['DomainRecords']['Record'][0][ 'RecordId'] #Get RecordId From Back JSON print('Your IPV4 RecordId:') print(recordidv4)