本篇文章给大家分享的是有关使用。净怎么实现动态域名解析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
动态域名解析,或<代码> DNSR> 代码,通常用于解析<代码> IP> 代码地址经常变化的域名。电信网络提供了公网<代码> IP> 代码,给广大程序员远程办公,内容分享等方面带来了极大的便利。但公网<代码> IP> 代码是动态的,它会经常变化,因此通过<代码> IP> 代码的方式访问非常不友好。因此就需要引入“花生壳”等动态域名解析工具,这类解析工具限制很多,如免费版只能使用指定的二级域名,解析的各类很少,域名数量有限制等等。
<强>动态域名解析的过程强>
- <李>
第一步知道自己的<代码> IP> 代码地址
李> <李>第二步更新<代码> DNS 代码>的<代码> IP> 代码解析值
李><强>获取自己的IP地址强>
现在网上有许多网站,服务或者<代码> 代码>可API以快速获取自己的<代码> IP> 代码地址,如随手在百度上可以找到http://www.ip138.com/,国外还有https://www.ipify.org/等服务,都挺好用。这些服务。NET代码> <代码>也可以做,只需几行简短的代码,然后部署到服务器上:
async Task 主要() { ,await 高手写 ,,,.CreateDefaultBuilder () ,,,.UseStartup() ,,,.Build () ,,,.RunAsync (); } public void  ConfigureServices (IServiceCollection 服务),{} public void 配置(IApplicationBuilder 应用程序),=祝辞, app.Run才能(ctx =祝辞,ctx.Response.WriteAsync (ctx.Connection.RemoteIpAddress.ToString ())),
我已经将该代码部署到了服务器上,域名是:https://echo-ip.starworks。cc,可供有需要的朋友测试。
<强>更新DNS解析值强>
各大域名网站都有自己的<代码> DNS> 代码解析代码>或<代码> API者<代码> SDK> 代码,阿里云也不例外,我可以通过几行简短的c# <代码> 代码>代码即可更新<代码> DNS> 代码解析值:
//,安装NuGet包:aliyun-net-sdk-alidns string currentIp =, new WebClient () .DownloadString (“https://echo-ip.starworks.cc/"); var client =, new DefaultAcsClient (DefaultProfile.GetProfile (““,, Util.GetPassword (“aliyun_dns_access_key"), Util.GetPassword (“aliyun_dns_secret_key"))); var domainRecords =, client.GetAcsResponse (new DescribeDomainRecordsRequest {, DomainName =,才能“starworks.cc",, RRKeyWord =,才能“cool",, .DomainRecords}); DescribeDomainRecordsResponse.DescribeDomainRecords_Record homeRecord =, domainRecords.First (x =祝辞,x.RR ==,“cool"); if (homeRecord._Value !=, currentIp) { client.GetAcsResponse才能(new UpdateDomainRecordRequest {才能 ,,,RecordId =, homeRecord.RecordId, ,,,RR =, homeRecord.RR, ,,,Type =, homeRecord.Type, ,,,_Value =, currentIp, ,,}); }
然后将该脚本添加到电脑的开机启动项,这样每次开机时,即可确保我的<代码> cool.starworks.cc> 代码为最新的本地<代码> IP 代码>了。
阿里云的<代码> SDK代码> 设计有点取巧了,客户端<代码> DefaultAcsClient> 代码只有一个方法:<代码> GetAcsResponse
与此相比,腾讯云提供的<代码> SDK> 代码就人性化很多,虽然我的域名绑定在阿里云上。
<强>不是80端口怎么办? 强>
默认是不允许<代码> 80 代码>/<代码> 443 代码>端口开放外网的,因此即使有动态域名绑定,以后发给客户时,网址里面也带一个长长的端口名,如:<代码> https://cool.starworks。cc: 44300> 代码。在<代码> DNS> 代码记录类型中,有多种方式解决这个问题,可以指定为<代码> SRV> 代码或者<代码>显性URL 代码>,<代码>隐性URL> 代码来解决这个问题:
这个过程可以通过<代码> c#代码>代码完成,代码如下:
client.GetAcsResponse (new AddDomainRecordRequest { DomainName =,才能“starworks.cc",, RR =,才能“cool", Type =,才能“SRV", _Value =,才能“0,5,44403,home.starworks.cc", }使用。net怎么实现动态域名解析