Example #1
0
        private TencentCloudDomianInfo GetDomianInfo(string domain)
        {
            TencentCloudDomianInfo info = new TencentCloudDomianInfo();

            string[] olds = domain.Split('.');
            if (olds.Length < 3)
            {
                throw new Exception("域名格式不正确,正确的域名格式参考:xxx.xxx.com");
            }
            info.RR         = domain.Substring(0, domain.IndexOf('.'));
            info.DomainName = domain.Substring(domain.IndexOf('.') + 1);
            return(info);
        }
Example #2
0
        /// <summary>
        /// 获取域名全部解析记录
        /// </summary>
        /// <param name="domain"></param>
        /// <returns></returns>
        public override List <DomainRecord> DescribeSubDomainRecords(string domain)
        {
            if (string.IsNullOrEmpty(domain))
            {
                throw new Exception("domain can not null.");
            }
            TencentCloudDomianInfo info = GetDomianInfo(domain);

            if (info == null)
            {
                throw new Exception("Get tencent domain info from domain string failed.");
            }
            RecordListResult result = client.RecordList(new RecordListRequestParam()
            {
                domain = info.DomainName,
            }).GetAwaiter().GetResult();

            if (result.Code != "0")
            {
                throw new Exception($"Get domain record info from tencent cloud failed. error id is {result.Code}, {result.Message}");
            }
            List <DomainRecord> infos = new List <DomainRecord>();

            foreach (var item in result.Data.Records)
            {
                if (item.name == info.RR)
                {
                    infos.Add(new DomainRecord()
                    {
                        RR         = item.name,
                        Status     = item.status,
                        RecordId   = item.id.ToString(),
                        DomainName = result.Data.Domain.name,
                        TTL        = item.ttl,
                        Line       = item.line,
                        Type       = item.type,
                        Value      = item.value,
                    });
                }
            }
            return(infos);
        }
Example #3
0
        /// <summary>
        /// 根据recordId获取解析的详细信息(可选实现)
        /// </summary>
        /// <param name="recordId"></param>
        /// <returns></returns>
        public override DomainRecordInfo DescribeDomainRecordInfo(string recordId, string domain)
        {
            if (string.IsNullOrEmpty(recordId) && string.IsNullOrEmpty(domain))
            {
                throw new Exception("Recordid or domain can not null.");
            }
            TencentCloudDomianInfo info = GetDomianInfo(domain);

            if (info == null)
            {
                throw new Exception("Get tencent domain info from domain string failed.");
            }
            RecordListResult result = client.RecordList(new RecordListRequestParam()
            {
                domain = domain
            }).GetAwaiter().GetResult();

            if (result.Code != "0")
            {
                throw new Exception($"Get domain record info from tencent cloud failed. error id is {result.Code}, {result.Message}");
            }
            foreach (var item in result.Data.Records)
            {
                if (item.id.ToString() == recordId)
                {
                    return(new DomainRecordInfo()
                    {
                        RR = item.name,
                        Status = item.status,
                        RecordId = recordId,
                        DomainName = result.Data.Domain.name,
                        TTL = item.ttl,
                        Line = item.line,
                        Type = item.type,
                        Value = item.value,
                    });
                }
            }
            throw new Exception($"Get domain record info from tencent cloud failed. can not find record from this recordid({recordId})");
        }