用.NET做动态域名解析的方法示例 |
|
动态域名解析,或 还好我们有 动态域名解析的过程
获取自己的IP地址 现在网上有许多网站、服务或者
async Task Main()
{
await WebHost
.CreateDefaultBuilder()
.UseStartup<UserQuery>()
.Build()
.RunAsync();
}
public void ConfigureServices(IServiceCollection services) {}
public void Configure(IApplicationBuilder app) =>
app.Run(ctx => ctx.Response.WriteAsync(ctx.Connection.RemoteIpAddress.ToString()));
我已经将该代码部署到了服务器上,域名是:https://echo-ip.starworks.cc,可供有需要的朋友测试 。 更新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,
});
}
然后将该脚本添加到电脑的开机启动项,这样每次开机时,即可确保我的 阿里云的 与此相比,腾讯云提供的 不是80端口怎么办? 默认是不允许
这个过程可以通过
client.GetAcsResponse(new AddDomainRecordRequest
{
DomainName = "starworks.cc",
RR = "cool",
Type = "SRV",
_Value = "0 5 44403 home.starworks.cc",
}
这样一来,只需在浏览器中输入:http://cool.starworks.cc,即可自动显示我http://home.starworks.cc:44403 的内容:
总结 文中的“祖传代码”链接如下,可随意下载使用,用 管理界面:https://github.com/sdcb/blog-data/blob/master/2019/20190927-dotnet-dynamic-domain-resolution/aliyun-manage-dns.linq 动态DNS:https://github.com/sdcb/blog-data/blob/master/2019/20190927-dotnet-dynamic-domain-resolution/aliyun-update-dns.linq 其中管理界面运行效果如下:
使用时将我的 说来其实我不太关心 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家 。 |