龙空技术网

利用Godaddy API 实现DNS批量解析,C#代码

微润软件 145

前言:

此时看官们对“godaddydns怎么样”都比较看重,各位老铁们都想要了解一些“godaddydns怎么样”的相关资讯。那么小编也在网摘上网罗了一些关于“godaddydns怎么样””的相关文章,希望咱们能喜欢,兄弟们快快来了解一下吧!

本文采用api接口实现域名DNS批量解析。

官方API文档地址:

接口不是很全,不支持NS单独设定,DNS解析记录清空。

采用的是替代方式。这里采用records接口来替代DNS记录。

下面是具体实现的方法,

1、获取域名已有 NS

这一步不可少。批量DNS接口必须包含两个NS记录。而部分域名没法更改NS记录,这里采用默认的NS记录

string api = $"v1/domains/{domain}";string html = getUrlHtml(api);if (!html.Contains("nameServers"))        return "Fail";html = _uu.getStrPart(html, "nameServers\":[", "]").Replace("\"", "");string[] arrNs = html.Split(',');

2、提交新的解析

api = $"v1/domains/{domain}/records";string data = "";                            //组装数据包if ( is_ www)	{			data += makeItemLine( www,target, recordType) ;}if ( is_ at & recordType ==' A" ){     data += makeItemLine( @,target, recordType) ;}if ( is_ star && recordType ==” A )				{			data += makeItemLine( *,target, recordType) ;}			string records_NS01 = "{\"data\":\"" + arrNs[0] + "\",\"name\":\"@\",\"ttl\":3600,\"type\":\"NS\"}";string records_NS02 = "{\"data\":\"" + arrNs[1] + "\",\"name\":\"@\",\"ttl\":3600,\"type\":\"NS\"}";string postData = "";data = _uu.trimTail(data);postData = $"[{data},{records_NS01},{records_NS02}]";html = postUrlHtml(api, postData, "PUT");

到这里,操作结束了。调试经常出现400错误,具体原因可以通过WebException异常获取

获取Godaddy返回的异常信息

catch (WebException e){      sHtml = e.Message;        // 获取详细的400错误提示      using (Stream stream = e.Response.GetResponseStream())      {        	using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))          {                 sHtml = reader.ReadToEnd();          }     }}

标签: #godaddydns怎么样