/// <summary> /// 新增解析记录 /// </summary> /// <param name="record"></param> /// <param name="strContent"></param> /// <returns></returns> public static bool AddDomainRecords(DescribeDomainRecordsResponse.Record record, out string strContent) { try { IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", CGlobalConfig.AccessKey, CGlobalConfig.AccessKeySecret); DefaultAcsClient client = new DefaultAcsClient(clientProfile); AddDomainRecordRequest request = new AddDomainRecordRequest(); request.DomainName = record.DomainName; request.RR = record.RR; request.Type = record.Type; request.Value = record.Value; try { AddDomainRecordResponse response = client.GetAcsResponse(request); strContent = response.RecordId; return(!string.IsNullOrEmpty(strContent)); } catch (ServerException e) { strContent = " AddDomainRecords 发送异常:" + e.ErrorCode + "\t" + e.ErrorMessage; CLogHelper.WriteError(strContent); } catch (ClientException e) { strContent = " AddDomainRecords 发送异常:" + e.ErrorCode + "\t" + e.ErrorMessage; CLogHelper.WriteError(strContent); } } catch (Exception ex) { strContent = " AddDomainRecords 发送异常:" + ex.ToString(); CLogHelper.WriteError(strContent); } return(false); }
private void addDomainRecord() { string[] symbols = new string[1] { "." }; string[] data = fullDomainName.Text.Split(symbols, 30, StringSplitOptions.RemoveEmptyEntries); string domainRR = data[0]; string domainName = data[1] + "." + data[2]; AddDomainRecordRequest request = new AddDomainRecordRequest(); request.Type = "A"; request.RR = domainRR; request.DomainName = domainName; request.Value = localIP.Text; try { AddDomainRecordResponse response = client.GetAcsResponse(request); recordId.Text = response.RecordId; } //处理错误 catch (ServerException e) { MessageBox.Show(e.ErrorCode + e.ErrorMessage); } catch (ClientException e) { MessageBox.Show(e.ErrorCode + e.ErrorMessage); } }
public static AddDomainRecordResponse Unmarshall(UnmarshallerContext context) { AddDomainRecordResponse addDomainRecordResponse = new AddDomainRecordResponse(); addDomainRecordResponse.HttpResponse = context.HttpResponse; addDomainRecordResponse.RequestId = context.StringValue("AddDomainRecord.RequestId"); addDomainRecordResponse.RecordId = context.StringValue("AddDomainRecord.RecordId"); return(addDomainRecordResponse); }
public static void AddDomainRecords(DescribeDomainRecordsResponse.Record record) { IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", CGlobalConfig.AccessKey, CGlobalConfig.AccessKeySecret); DefaultAcsClient client = new DefaultAcsClient(clientProfile); AddDomainRecordRequest request = new AddDomainRecordRequest(); request.DomainName = record.DomainName; request.RR = record.RR; request.Type = record.Type; request.Value = record.Value; AddDomainRecordResponse response = client.GetAcsResponse(request); }
/// <summary> /// 添加域名记录 /// </summary> /// <returns></returns> private bool addDomainRecord() { string[] symbols = new string[1] { "." }; string[] data = fullDomainName.Text.Split(symbols, 30, StringSplitOptions.RemoveEmptyEntries); string domainRR = data[0]; string domainName = data[1] + "." + data[2]; clientProfile = DefaultProfile.GetProfile("cn-hangzhou", textBox_accessKeyId.Text.ToString(), textBox_accessKeySecret.Text.ToString()); client = new DefaultAcsClient(clientProfile); AddDomainRecordRequest request = new AddDomainRecordRequest(); request.Type = "A"; request.RR = domainRR; request.DomainName = domainName; request.TTL = Convert.ToInt32(textBox_TTL.Text); request.Value = localIP.Text; try { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "正在向阿里云DNS服务添加域名:" + fullDomainName.Text + "\r\n"); AddDomainRecordResponse response = client.GetAcsResponse(request); if (response.RecordId != null) { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + " 域名:" + fullDomainName.Text + "添加成功!" + "服务器返回RecordId:" + response.RecordId + "\r\n"); textBox_recordId.Text = response.RecordId.ToString(); cfg.SaveAppSetting("RecordID", response.RecordId.ToString()); globalDomainType.Text = request.Type; globalRR.Text = request.RR; globalValue.Text = domainIP.Text = request.Value; label_DomainIpStatus.Text = "已绑定"; label_DomainIpStatus.ForeColor = System.Drawing.Color.FromArgb(0, 0, 0, 255); return(true); } else { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + " 域名:" + fullDomainName.Text + "添加失败!" + "\r\n"); label_DomainIpStatus.Text = "未绑定"; domainIP.Text = "0.0.0.0"; textBox_recordId.Text = "null"; globalRR.Text = "null"; globalDomainType.Text = "null"; globalValue.Text = "null"; label_TTL.Text = "null"; label_DomainIpStatus.ForeColor = System.Drawing.Color.FromArgb(255, 255, 0, 0); return(false); } } //处理错误 catch (Exception error) { textBox_log.AppendText(System.DateTime.Now.ToString() + " " + "updateDomainRecord() 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"); * }*/ return(false); }
//定时执行事件 private void TimedEvent(object sender, System.Timers.ElapsedEventArgs e) { //每次都重新获取配置(可以动态修改而不用重启服务) GetConfig(); if (!configExist_) { logger.Error(" Not Config Yet ...... 【Skip】"); return; } string currentInternetIp = GetInternetIP(); if (currentInternetIp.Length == 0) { logger.Info("Can't Get Current Internet Ip ...... 【Skip】"); return; } IClientProfile clientProfile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId_, accessKeySecret_); DefaultAcsClient client = new DefaultAcsClient(); DescribeDomainRecordsRequest reqFetch = new DescribeDomainRecordsRequest(); reqFetch.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON; reqFetch.DomainName = domainName_; string dnsIp = "", recordId = ""; try { DescribeDomainRecordsResponse resFetch = client.GetAcsResponse(reqFetch); foreach (var r in resFetch.DomainRecords) { if (r.RR == subDomainName_) { dnsIp = r.Value; recordId = r.RecordId; } } } catch (ServerException ex) { logger.Error("Server Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } catch (ClientException ex) { logger.Error("Client Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } if (dnsIp.Length == 0) { logger.Info("Can't Get Dns Record , Add New Record ."); AddDomainRecordRequest reqAdd = new AddDomainRecordRequest(); reqAdd.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON; reqAdd.DomainName = domainName_; reqAdd.RR = subDomainName_; reqAdd.Type = "A"; reqAdd.Value = currentInternetIp; try { //添加解析记录 AddDomainRecordResponse resAdd = client.GetAcsResponse(reqAdd); logger.Info("\r\n Dns Record Add ...... 【OK】 \r\n New Dns Record Is : " + currentInternetIp); } catch (ServerException ex) { logger.Error("Dns Record Add ...... 【Error】 \r\n Server Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } catch (ClientException ex) { logger.Error("Dns Record Add ...... 【Error】 \r\n Client Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } } else { if (currentInternetIp == dnsIp) { logger.Info("Current Internet Ip Is : " + currentInternetIp + " ,Same As Dns Record ...... 【Skip】"); } else { //更新记录 UpdateDomainRecordRequest reqUpdate = new UpdateDomainRecordRequest(); reqUpdate.AcceptFormat = Aliyun.Acs.Core.Http.FormatType.JSON; reqUpdate.RecordId = recordId; reqUpdate.RR = subDomainName_; reqUpdate.Type = "A"; reqUpdate.Value = currentInternetIp; try { //更新解析记录 UpdateDomainRecordResponse resUpdate = client.GetAcsResponse(reqUpdate); logger.Info("\r\n Update Dns Record ...... 【OK】 \r\n New Dns Record Is : " + currentInternetIp); } catch (ServerException ex) { logger.Error("Dns Record Update ...... 【Error】 \r\n Server Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } catch (ClientException ex) { logger.Error("Dns Record Update ...... 【Error】 \r\n Client Error >> code : " + ex.ErrorCode + " | Error Message : " + ex.ErrorMessage); } } } }