Ejemplo n.º 1
0
        /// <summary>
        /// 添加解析记录
        /// </summary>
        /// <param name="domain">要添加解析记录的域名(主域名,不包括 www,例如:qcloud.com)</param>
        /// <param name="subDomain">子域名,例如:www</param>
        /// <param name="recordType">记录类型,可选的记录类型为:"A", "CNAME", "MX", "TXT", "NS", "AAAA", "SRV"</param>
        /// <param name="value">记录值,例如 IP:192.168.10.2,CNAME:cname.dnspod.com.,MX:mail.dnspod.com.</param>
        /// <returns></returns>
        public async Task <DynamicDnsResult> AddAsync(string domain, string subDomain, string recordType, string value)
        {
            var model = new CreateRecordRequestModel(domain, subDomain, recordType, value);
            var resp  = await RequestFactory.Request(model);

            return(ResponseUtil.Validate(resp));
        }
        public async Task <DynamicDNSResult> AddOrUpdateAsync(string domain, string subDomain, string recordType, string value)
        {
            var recordList = await RequestFactory.Request <RecordListResponseModel>(new RecordListRequestModel(domain));

            if (recordList.Code != 0)
            {
                return(new DynamicDNSResult(false, recordList.Message));
            }

            if (!recordList.Data.Records.Any())
            {
                return(new DynamicDNSResult(false, "没有任何解析记录!"));
            }

            var updateRecordList = subDomain.Split(',').ToList();

            var result = string.Empty;

            foreach (var item in updateRecordList)
            {
                if (string.IsNullOrEmpty(item))
                {
                    continue;
                }
                var oldRecord = recordList.Data.Records.FirstOrDefault(x => x.Name == item)?.Id;
                if (oldRecord.HasValue)
                {
                    await RequestFactory.Request(new RemoveRecordRequestModel(domain, oldRecord.Value));
                }
                var model = new CreateRecordRequestModel(domain, item, recordType, value);
                result = await RequestFactory.Request(model);
            }

            return(ResponseUtil.Validate(result));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 添加或更新解析记录
        /// </summary>
        /// <param name="domain">要添加解析记录的域名(主域名,不包括 www,例如:qcloud.com)</param>
        /// <param name="subDomain">子域名,例如:www</param>
        /// <param name="recordType">记录类型,可选的记录类型为:"A", "CNAME", "MX", "TXT", "NS", "AAAA", "SRV"</param>
        /// <param name="value">记录值,例如 IP:192.168.10.2,CNAME:cname.dnspod.com.,MX:mail.dnspod.com.</param>
        /// <returns></returns>
        public async Task <DynamicDnsResult> AddOrUpdateAsync(string domain, string subDomain, string recordType, string value)
        {
            var model        = new CreateRecordRequestModel(domain, subDomain, recordType, value);
            var deleteResult = await DeleteAsync(model.Domain, model.SubDomain);

            if (deleteResult.Error)
            {
                return(deleteResult);
            }

            //移除后添加
            var resp = await RequestFactory.Request(model);

            return(ResponseUtil.Validate(resp));
        }