/// <summary> /// 根据recordId获取解析记录的详细信息。 /// </summary> /// <param name="recordId"></param> /// <returns></returns> public override DomainRecordInfo DescribeDomainRecordInfo(string recordId, string domain) { var request = new DescribeDomainRecordInfoRequest() { RecordId = recordId }; try { var response = client.GetAcsResponse(request); if (response == null || response.HttpResponse.Content == null || response.HttpResponse.Content.Length == 0) { throw new Exception("Describe subDomain records info is null."); } string result = Encoding.UTF8.GetString(response.HttpResponse.Content); return(new JsonSerializer().Deserialize <DomainRecordInfo>(new JsonTextReader(new StringReader(result)))); } catch (ServerException e) { throw new Exception($"Aliyun server error. {e.Message}"); } catch (ClientException e) { throw new Exception($"Reuqest client error. errcode is {e.ErrorCode}, {e.Message}"); } }
/// <summary> /// 从阿里云服务器获取域名记录信息 /// </summary> /// <returns></returns> private string getAliDnsRecordDomainIP() { clientProfile = DefaultProfile.GetProfile("cn-hangzhou", textBox_accessKeyId.Text.ToString(), textBox_accessKeySecret.Text.ToString()); client = new DefaultAcsClient(clientProfile); DescribeDomainRecordInfoRequest request = new DescribeDomainRecordInfoRequest(); request.RecordId = textBox_recordId.Text.ToString(); try { DescribeDomainRecordInfoResponse response = client.GetAcsResponse(request); string fullDomain = response.RR.ToString() + "." + response.DomainName.ToString(); if (response.Value != "0.0.0.0") { if (fullDomain != fullDomainName.Text.ToString()) { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "阿里云DNS域名记录:" + response.RecordId + " 对应域名为:" + fullDomain + "\r\n"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "配置文件域名记录:" + textBox_recordId.Text.ToString() + " 对应域名为:" + fullDomainName.Text.ToString() + "\r\n"); textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "配置文件设置错误!可能原因是修改域名记录后未及时添加,已经自动修改配置文件与服务器记录一致!" + "\r\n"); fullDomainName.Text = fullDomain; cfg.SaveAppSetting("fullDomainName", fullDomain); } textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "域名:" + response.RR + "." + response.DomainName + " 已经绑定IP:" + response.Value + "\r\n"); textBox_recordId.Text = response.RecordId; globalRR.Text = response.RR; globalDomainType.Text = response.Type; globalValue.Text = response.Value; label_TTL.Text = Convert.ToString(response.TTL); label_DomainIpStatus.Text = "已绑定"; label_DomainIpStatus.ForeColor = System.Drawing.Color.FromArgb(0, 0, 0, 255); return(response.Value); } textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "获取域名绑定IP失败!" + "\r\n"); } //处理错误 catch (Exception error) { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "getAliDnsRecordDomainIP() Exception: " + error + "\r\n"); } /* * catch (ServerException e) * { * textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "Server Exception: " + e.ErrorCode + e.ErrorMessage + "\r\n"); * } * catch (ClientException e) * { * textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "Client Exception: " + e.ErrorCode + e.ErrorMessage + "\r\n"); * }*/ label_DomainIpStatus.Text = "未绑定"; label_DomainIpStatus.ForeColor = System.Drawing.Color.FromArgb(255, 255, 0, 0); return("0.0.0.0"); }
/// <summary> /// 获取解析的记录值 /// </summary> /// <param name="RecordID"></param> /// <returns></returns> public string GetDomainRecordValue(string RecordID) { var request = new DescribeDomainRecordInfoRequest() { RecordId = RecordID }; try { var response = client.GetAcsResponse(request); return(response.Value); } catch { return(string.Empty); } }
private string getDomainIP() { DescribeDomainRecordInfoRequest request = new DescribeDomainRecordInfoRequest(); request.RecordId = recordId.Text; try { DescribeDomainRecordInfoResponse response = client.GetAcsResponse(request); return(response.Value); } //处理错误 catch (ServerException e) { MessageBox.Show("Server Exception: " + e.ErrorCode + e.ErrorMessage); return("0.0.0.0"); } catch (ClientException e) { MessageBox.Show("Client Exception: " + e.ErrorCode + e.ErrorMessage); return("0.0.0.0"); } }