Example #1
0
 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]
Example #2
0
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
Example #3
0
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)
Example #4
0
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
Example #5
0
 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
Example #6
0
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']
Example #7
0
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()))
Example #8
0
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
Example #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}
Example #10
0
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'))
Example #11
0
    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')
Example #12
0
    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}
Example #13
0
    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))
Example #16
0
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
Example #18
0
 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
Example #22
0
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
Example #23
0
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')
Example #24
0
    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
Example #25
0
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)
Example #26
0
 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)
Example #27
0
 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)
Example #28
0
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
Example #30
0
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)