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")
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
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))
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')
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
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)
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}
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}