Esempio n. 1
0
def refresh_domain_records():
    """
    更新域名 DNS
    """
    try:
        ip = get_ip()
        client = AcsClient(ALI_AK, ALI_SECRET, ALI_REGION_ID)
        req_get_records = DescribeDomainRecordsRequest()
        req_get_records.set_accept_format('json')
        req_get_records.set_DomainName(ALI_DOMAIN)
        response = json.loads(client.do_action_with_exception(req_get_records))
        msg = ""
        for record in response["DomainRecords"]["Record"]:
            recode_ip = record["Value"]
            if recode_ip != ip:
                req_set_record = UpdateDomainRecordRequest()
                req_set_record.set_RecordId(record["RecordId"])
                req_set_record.set_RR(record["RR"])
                req_set_record.set_Type(record["Type"])
                req_set_record.set_TTL(record["TTL"])
                req_set_record.set_Value(ip)
                req_set_record.set_accept_format('json')
                client.do_action_with_exception(req_set_record)
                info = str.format("{0}.{1} {2} --> {3}", record["RR"],
                                  ALI_DOMAIN, recode_ip, ip)
                logging.info(info)
                msg += info + "\n"
        if msg != "":
            send_mail(msg)
    except:
        logging.exception("Exception occurred")
Esempio n. 2
0
    def modify_record(self,
                      old_rr=None,
                      new_rr=None,
                      type=None,
                      line=None,
                      value=None,
                      ttl=None,
                      mx=None):
        """
        修改记录
        :return: True|False
        """
        try:
            record_id = self.get_record_id(old_rr)
            if not record_id:
                return False

            if type == "显示URL":
                type = "REDIRECT_URL"

            if type == "隐性URL":
                type = "FORWARD_URL"

            client = AcsClient(self.key, self.secret, 'cn-hangzhou')
            request = UpdateDomainRecordRequest()
            request.set_accept_format('json')
            request.set_RecordId(record_id)
            request.set_RR(new_rr + "." + self.prefix_domain)
            request.set_Type(type)
            request.set_Value(value)
            request.set_Line(self.record_line(value=line))
            request.set_TTL(600 if int(ttl) < 600 else int(ttl))

            if type == "MX":
                request.set_Priority(mx)

            try:
                response = client.do_action_with_exception(request)
                response = json.loads(response)

                if "Code" in response.keys():
                    print(F"modify record failed: {response}")
                    print(response)
                    return False

                print(F"modify record success: [{old_rr} -> {new_rr}]")
                return True

            except ServerException as e:
                print(F"No changes for record: {e}")
                return True

        except Exception:
            print(F"modify record unknown exception")
            print(traceback.format_exc())
            return False
Esempio n. 3
0
 def __update_record(self, record_id, record, value, record_type, ttl):
     '''Update record.'''
     req = UpdateDomainRecordRequest()
     req.set_RecordId(record_id)
     req.set_accept_format('json')
     req.set_RR(record)
     req.set_Type(record_type)
     req.set_TTL(ttl)
     req.set_Value(value)
     js = json.loads(self.__bs.do_action_with_exception(req).decode())
     print('[+]%s.%s -> %s;%s;%d' %
           (record, self.__domain, value, record_type, ttl))
Esempio n. 4
0
    def update_record(self, *args, **kwargs):
        request = UpdateDomainRecordRequest()
        request.set_accept_format('json')

        request.set_RecordId(kwargs.get('record_id'))
        request.set_RR(kwargs.get('domain_rr'))
        request.set_Type(kwargs.get('domain_type'))
        request.set_Value(kwargs.get('domain_value'))
        request.set_TTL(kwargs.get('domain_ttl'))
        request.set_Line(kwargs.get('line'))

        response = self.__client.do_action_with_exception(request)
        return json.loads(str(response, encoding="utf8")).get('RecordId')
Esempio n. 5
0
def modfixDomain():
    #client = AcsClient(Utils.getConfigJson().get('AccessKeyId'), Utils.getConfigJson().get('AccessKeySecret'), Utils.getConfigJson().get('RegionId'))
    client = AcsClientSing.getInstance()
    request = UpdateDomainRecordRequest()
    request.set_accept_format('json')

    request.set_RecordId(
        Utils.getRecordId(Utils.getConfigJson().get('Second-level-domain')))
    request.set_RR(Utils.getConfigJson().get('Second-level-domain'))
    request.set_Type("A")
    request.set_Value(getRealIp.getRealIp())
    #request.set_Value("192.168.0.71")
    request.set_TTL(600)
    response = client.do_action_with_exception(request)
    result = str(response, encoding='utf-8')
    return result
    def update_record(self, priority, ttl, record_type, value, rr, record_id):
        logging.info("更新域名解析记录")
        from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
        request = UpdateDomainRecordRequest()

        request.set_accept_format('json')
        request.set_Priority(priority)
        request.set_TTL(ttl)
        request.set_Value(value)
        request.set_Type(record_type)
        request.set_RR(rr)
        request.set_RecordId(record_id)

        response = self.client.do_action_with_exception(request)
        response = str(response, encoding='utf-8')
        logging.debug(response)
        return response
Esempio n. 7
0
def modify_record(my_ip):
    acs_client = AcsClient(AccessKeyId, AccessKeySecret, RegionId)
    for domain in domain_config:
        recored_id = domain.get("recored_id")
        prefix = domain.get("prefix").encode("utf-8")
        logging.info("Now set recored_id: %s, prefix: %s -> %s" %
                     (recored_id, prefix, my_ip))

        request = UpdateDomainRecordRequest()
        request.set_RecordId(recored_id)
        request.set_RR(prefix)
        request.set_Type("A")
        request.set_Value(my_ip)
        request.set_TTL(600)
        try:
            response = acs_client.do_action_with_exception(request)
        except Exception as e:
            logger.error("Sync to aliyun error: %s." % e)
            save_error_info()
        else:
            logger.info("Sync to aliyun finished, nore info: %s" % response)
Esempio n. 8
0
    def update_record(self, obj):
        self.client = AcsClient(obj.domain_name.account.access_id,
                                obj.domain_name.account.access_key,
                                'cn-hangzhou')
        request = UpdateDomainRecordRequest()
        request.set_accept_format('json')

        request.set_RecordId(obj.record_id)
        request.set_TTL(obj.ttl)
        request.set_Line(obj.line)
        request.set_Value(obj.value)
        request.set_Type(obj.type)
        request.set_RR(obj.rr)
        if obj.priority:
            request.set_Priority(obj.priority)

        try:
            response = self.client.do_action_with_exception(request)
            ret = json.loads(str(response, encoding='utf-8'))
            return {'code': 1, 'message': ret}
        except Exception as e:
            return {'code': 0, 'message': e}
Esempio n. 9
0
def Ali_Edit_Parsing(key, secret, region, domain=None, **kwargs):
    try:
        client = AcsClient(key, secret, region)
        if kwargs['RecordId']:
            request = UpdateDomainRecordRequest()
            request.set_accept_format('json')
            request.set_RecordId(kwargs['RecordId'])
        else:
            request = AddDomainRecordRequest()
            request.set_accept_format('json')
            request.set_DomainName(domain)
        request.set_RR(kwargs['RR'])
        request.set_Type(kwargs['Type'])
        request.set_Value(kwargs['Value'])
        request.set_TTL(kwargs['TTL'])
        request.set_Line(kwargs['Line'])
        if kwargs['Priority']:
            request.set_Priority(int(kwargs['Priority']))
        response = client.do_action_with_exception(request)
        data = {"code": 0, "data": response.decode(encoding='utf-8')}
        return data
    except Exception:
        return {"code": 1}