Пример #1
0
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)
Пример #2
0
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