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); }
/// <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); }
/// <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})"); }