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)
def update_domain_record(RRKeyWord, Value): request = UpdateDomainRecordRequest() request.set_accept_format('json') request.set_Type("A") request.set_RR(RRKeyWord) request.set_Value(Value) # 根据RecordID决定更新那个主域名的主机记录 request.set_RecordId(get_record_id(RRKeyWord)) response = client.do_action_with_exception(request) print(str(response, encoding='utf-8'))
descDomainRes = clt.do_action(descDomainReq) recordInfo = getRecordInfo(descDomainRes, RR) if recordInfo is None: raise Exception("can't find RR value " + RR) print recordInfo currentIP = recordInfo["Value"] recordId = recordInfo["RecordId"] while True: try: result = urllib2.urlopen('http://ip.cn/', timeout=3) text = result.read() ip = re.findall(rip, text)[0] if currentIP == ip: print time.strftime(ISOTIMEFORMAT, time.localtime( )) + " ip( %s ) is not change, sleep %ds" % (ip, updateInterval) time.sleep(updateInterval) continue request = UpdateDomainRecordRequest() request.set_Value(ip) request.set_Type("A") request.set_RecordId(recordId) request.set_RR(RR) request.set_accept_format('xml') result = clt.do_action(request) print result currentIP = ip print time.strftime(ISOTIMEFORMAT, time.localtime()) + " ip( %s ) update" % ip except: None