def __setRecordValue(self, record_value): self.__requireParmSet() # creat request,set parm if self.has_remote_record: if record_value == self.remote_record_value: print "current local internet ip is " + record_value + ", which same as the remote record [SKIP]" return True else: print "current local internet ip is " + record_value + ", which different from the remote record " + self.remote_record_value + " [UPDATE]" request = UpdateDomainRecordRequest() request.set_RecordId(self.record_id) request.set_RR(self.sub_domain_name) request.set_Type(self.record_type) request.set_Value(record_value) else: print "current local internet ip is " + record_value + ", the remote sub domain record do not exist ! [ADD]" request = AddDomainRecordRequest() request.set_DomainName(self.domain_name) request.set_RR(self.sub_domain_name) request.set_Type(self.record_type) request.set_Value(record_value) # execute res = self.__tryExecute(request) if res[0]: if self.has_remote_record: print "update [OK]" else: print "add [OK]" else: if self.has_remote_record: print "update [ERROR] " + res[1] else: print "add [ERROR] " + res[1]
def add_dns_record(ali_api_id, ali_api_secret, ip, request_domain, request_sub_domain): client = AcsClient(ali_api_id, ali_api_secret, 'cn-hangzhou') request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(request_domain) request.set_RR(request_sub_domain) request.set_Type("A") request.set_Value(ip) try: response = client.do_action_with_exception(request) except (ClientException, ServerException) as reason: log.error("add dns failed. do_action_with_exception " + reason) return False result = str(response, encoding='utf-8') log.info("add dns record result: \r\n" + result) json_obj = json.loads(result) if len(json_obj['RecordId']) == 0: log.error("add dns failed. error code " + json_obj['code']) return False return True
def create_record(domain_name, name, ip): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain_name) request.set_RR(name) request.set_Type("A") request.set_Value(ip) with open(log_file, 'a') as logfile: try: response = client.do_action_with_exception(request) sms.dns_record_update_sms( '.'.join([name, domain_name]).replace(".", "-"), ip.replace('.', '-')) serverchan_ip_change_msg(name, "-".join(ip.split("."))) logfile.write( "%s \t %s \n" % (str(time.asctime(time.localtime(time.time()))), response)) r_j = json.loads(response.decode()) request_id = r_j["RequestId"] record_id = r_j["RecordId"] insert_change(request_id=request_id, record_id=record_id, domain=domain_name, name=name, ip_addr=ip) exist_and_count(domain_name, name, record_id) OK_response("200.1 OK") except Exception as e: logfile.write("%s \t %s \n" % (str(time.asctime(time.localtime( time.time()))), traceback.print_exc())) code = "503.2" serverchan_error_msg(domain_name, code, e) error_response(code)
def add_domain_record(client, domain, rr, value): """ 新增解析记录 :param client :param domain: :param rr: :param value: :return: """ request = AddDomainRecordRequest() request.set_DomainName(domain) request.set_RR(rr) request.set_Type('A') request.set_Value(value) response = client.do_action_with_exception(request) return response
def add_domain_record(domain, RR): log.write('\n') log.write(asctime(localtime(time()))) log.write('\n添加记录') log.write('\n记录IP: \t' + ip) log.flush() request = AddDomainRecordRequest() request.set_DomainName(domain) request.set_accept_format('json') request.set_RR(RR) return request
def addDomainRecord(client, rr, domain, ip, type): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_Value(ip) request.set_Type(type) request.set_RR(rr) request.set_DomainName(domain) response = client.do_action_with_exception(request) print(str(response, encoding='utf-8')) return json.loads(response)['RecordId']
def update(): print("start time:" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) new_ip = get_ip() with open("./config.json", 'r') as load_f: load_dict = json.load(load_f) accessKeyId = load_dict['AccessKeyId'] accessKeySecret = load_dict['AccessKeySecret'] domain = load_dict['domain'] secondDomain = load_dict['second-level-domain'] client = AcsClient(accessKeyId, accessKeySecret, 'cn-hangzhou') request = DescribeDomainRecordsRequest() request.set_accept_format('json') request.set_DomainName("haifeng.ink") response = client.do_action_with_exception(request) records = json.loads(response)['DomainRecords']['Record'] old_record_id = '' old_ip = '' for record in records: if record['RR'] == secondDomain: old_ip = record['Value'] old_record_id = record['RecordId'] break if old_record_id != '' and old_ip != new_ip: request = UpdateDomainRecordRequest() request.set_accept_format('json') request.set_RecordId(old_record_id) request.set_RR(secondDomain) request.set_Type('A') request.set_Value(new_ip) client.do_action_with_exception(request) print('更新ip:' + new_ip) elif old_record_id == '': request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain) request.set_RR(secondDomain) request.set_Type('A') request.set_Value(new_ip) response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8')) print('添加新ip:' + new_ip) else: print('不需要更新') print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
def add_record(client, priority, ttl, record_type, value, rr, domainname): request = AddDomainRecordRequest() 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_DomainName(domainname) response = client.do_action_with_exception(request) response = str(response, encoding='utf-8') relsult = json.loads(response) return relsult
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}
from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest import sys sys.path.append("..") from content import accessKeyId, accessSecret from getip import get_ip client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') ip = get_ip() print(type(ip)) request = AddDomainRecordRequest() request.set_accept_format('json') request.set_Value(ip) request.set_Type("A") request.set_RR("blog") request.set_DomainName("henqy.club") response = client.do_action_with_exception(request) # python2: print(response) print(str(response, encoding='utf-8'))
def add_record(self, *args, **kwargs): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(kwargs.get('domain_name')) 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 add_record(self, obj): self.client = AcsClient(obj.domain_name.account.access_id, obj.domain_name.account.access_key, 'cn-hangzhou') request = AddDomainRecordRequest() request.set_accept_format('json') 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) request.set_DomainName(obj.domain_name.domain_name) 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 add_txt_record(self, domain, record_name, record_value, ttl): rr = record_name[:record_name.rindex('.' + domain)] request = AddDomainRecordRequest() request.set_accept_format("json") request.set_DomainName(domain) request.set_Type("TXT") request.set_RR(rr) request.set_Value(record_value) request.set_TTL(ttl) self._client.do_action_with_exception(request)
def add_mxrecord(accessKeyId, accessSecret, DomainName, RR, Type, target, Priority): client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(RR) request.set_Type(Type) request.set_Value(target) request.set_Priority(Priority) response = client.do_action_with_exception(request)
def add_txt_record(self, domain, record_name, record_content, record_ttl): """ Add a TXT record using the supplied information. :param str domain: The domain to use to look up the Alidns zone. :param str record_name: The record name (typically beginning with '_acme-challenge.'). :param str record_content: The record content (typically the challenge validation). :param int record_ttl: The record TTL (number of seconds that the record may be cached). :raises certbot.errors.PluginError: if an error occurs communicating with the Aliyun API """ if self._find_txt_record_id(domain, record_name, record_content): logger.debug('TXT record exited; no add needed.') return request = AddDomainRecordRequest() domain_root = '.'.join(domain.split('.')[-2:]) doamin_rr = record_name[:record_name.find(domain_root) - 1] request.set_accept_format('json') request.set_DomainName(domain_root) request.set_Type("TXT") request.set_RR(doamin_rr) request.set_Value(record_content) request.set_TTL(record_ttl) try: self.ac.do_action_with_exception(request) except ClientException as e: logger.error( 'Encountered ClientException adding TXT record: %d %s', e, e) raise errors.PluginError( 'Error communicating with the aliyun API: {0}'.format(e))
def add_domain_record(domain, value, rr, type='A'): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain) request.set_Type(type) request.set_RR(rr) request.set_Value(value) response = client.do_action_with_exception(request) return response
def add_record(self, priority, ttl, record_type, value, rr, domain_name): logging.info("添加域名解析记录") from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest request = AddDomainRecordRequest() 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_DomainName(domain_name) response = self.client.do_action_with_exception(request) response = str(response, encoding='utf-8') result = json.loads(response) logging.debug(result) return result
def create_domain_record(self, domain, rr, record_type, value, ttl): request = AddDomainRecordRequest() if ttl is not None: request.set_TTL(ttl) request.set_Type(record_type) request.set_RR(rr) request.set_Value(value) request.set_DomainName(domain) request.set_accept_format("JSON") return json.loads(self.clt.do_action_with_exception(request))
def add(DomainName, RR, Type, Value): # 添加新的域名解析记录 from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(RR) # https://blog.zeruns.tech request.set_Type(Type) request.set_Value(Value) response = client.do_action_with_exception(request)
def _add_domain_record(self, domain_name: str, host_record: str, record_type: str, value: str): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain_name) request.set_RR(host_record) request.set_Type(record_type) request.set_Value(value) response = self.client.do_action_with_exception(request) response = response.decode('utf-8') return json.loads(response)
def AddDomainRecordHelper(Client, DomainName, RR, Type, Value, Line): Request = AddDomainRecordRequest() Request.set_accept_format('json') #设置增加记录的信息 Request.set_DomainName(DomainName) Request.set_RR(RR) Request.set_Type(Type) Request.set_Value(Value) Request.set_Line(Line) result = ExecuteGetResults(Client,Request) #print(result) return result
def add_domain_record(client, domain_name, sub_name, dtype, value): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain_name) request.set_RR(sub_name) request.set_Type(dtype) request.set_Value(value) response = client.do_action_with_exception(request) response = response.decode() response = json.loads(response) if "RecordId" in response: return response['RecordId'] return None
def add_record(x): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(RR) request.set_Type(Type) request.set_Value(x) response = client.do_action_with_exception(request) return str(response, encoding='utf-8')
def add_record(self, rr=None, type=None, line=None, value=None, ttl=600, mx=None): """ 添加记录 :return: True|False """ try: if type == "显示URL": type = "REDIRECT_URL" if type == "隐性URL": type = "FORWARD_URL" client = AcsClient(self.key, self.secret, 'cn-hangzhou') request = AddDomainRecordRequest() request.set_accept_format('json') request.set_Line(self.record_line(value=line)) request.set_TTL(600 if int(ttl) < 600 else int(ttl)) request.set_Value(value) request.set_Type(type) # request.set_RR(RR + ("." + self.prefix_domain if self.prefix_domain else "")) if self.prefix_domain: rr = ''.join([rr, ".", self.prefix_domain]) request.set_RR(rr) request.set_DomainName(self.second_level_domain) if type == "MX": request.set_Priority(mx) response = client.do_action_with_exception(request) response = json.loads(response) if "Code" in response.keys(): logger.error(F"add record failed: {response}") return False logger.info(F"add record success: {rr}") return True except Exception: logger.error("add record unknown exception") logger.error(traceback.format_exc()) return False
def add_record(value): try: logging.info('AddDomainRecordRequest %s %s' % (SUBDOMAIN, value)) request = AddDomainRecordRequest() request.set_DomainName(DOMAIN) request.set_RR(RECORD) request.set_Type('AAAA') request.set_Value(value) request.set_accept_format('json') response = acsClient.do_action_with_exception(request) return json.loads(response)['RecordId'] except Exception as e: logging.error(e)
def __add_record(self, record, value, record_type, ttl): '''Add record.''' req = AddDomainRecordRequest() req.set_DomainName(self.__domain) 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.__client.do_action_with_exception(req).decode()) print('[A]%12s.%s -> %-24s; %-12s;%s' % (record, self.__domain, value, record_type, ttl), flush=True)
def add(DomainName, RR, Type, Value): from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest request = AddDomainRecordRequest() request.set_accept_format("json") request.set_DomainName(DomainName) request.set_RR(RR) request.set_Type(Type) request.set_Value(Value) DDNSUnit.response(request)
def aliyun_add_subdomain(client, subdomain, ipaddress, addtype): request = None response = None request = AddDomainRecordRequest() request.set_accept_format('json') tmp = subdomain.partition('.') request.set_DomainName(tmp[-1]) request.set_RR(tmp[0]) if addtype == 'ipv4': request.set_Type('A') else: request.set_Type('AAAA') request.set_Value(ipaddress) try: response = client.do_action_with_exception(request) except ServerException as e: print('Server Error! Domain: {}, Code: {}.'.format( subdomain, e.get_error_code())) print(e.get_error_msg()) return None except ClientException as e: print('Client Error! Domain: {}, Code: {}.'.format( subdomain, e.get_error_code())) print(e.get_error_msg()) return None return json.loads(str(response, encoding='utf-8'))
def add_domain_record(domain_name, rr, record_type, value, line=Line.default): client = create_client() request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(domain_name) request.set_RR(rr) request.set_Type(record_type) request.set_Value(value) request.set_Line(line) response = client.do_action_with_exception(request) return response
def AddRecords(DomainName, ResolutionRecord, RecordType, RecordValue): request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(ResolutionRecord) request.set_Type(RecordType) request.set_Value(RecordValue) response = client.do_action_with_exception(request) records = json.loads(response) print(records)