申博在线娱乐登入

申博在线娱乐登入用.NET做动态域名解析

用.NET做动态域名解析

本文来源:http://www.yu833.com/www_jk3721_com/

申博在线娱乐登入,在中央全面深化改革领导小组第三十次会议上,习近平总书记立足当下、着眼未来,强调了改革四个有利于的工作导向,为我们总结谋划好改革工作、做好明年和今后改革工作提供了思想工具和实践指引。会议通过国家科技重大专项十三五发展规划,要求瞄准经济社会发展需求,强化资源集成和协同创新,动员社会力量参与,推进集成电路装备、新药创制等重大专项,在智能制造等领域启动新的专项,加强成果应用和产业化,推动科技实力整体跃升。中国社科院财经战略研究院研究员杨志勇认为,特朗普减税和里根时代相比,应该有类似的效果,但可能比不上里根时代。很多人买了书之后也不会立刻走,等着陈桂霞稍有空闲时询问朱传国的身体状况。

到了2000年,该贸易赤字已经飙升到3172亿美元,占当年GDP的比重也上升到3.1%。小食店和夜访宽窄巷是总理的工作态度、工作方法,同样也是普通百姓的真实反映。当然了,你也不想回头。  把自己调频到高八度,你就能表现出极大的积极明智的转变!  [魔羯座]译者:@Louisalotte  外行星们正在努力达成一致,在它们的作用下,魔羯座们会有很长一段美好时光。

  我们还需更加认真地开展台海军事斗争准备,确保随时能够对台独予以严惩,让战略反介入能力落到实处。具体而言,就是要把改革的年度台账拿出来盘点一下,对照账本查查定下来的任务是否落实到位,不能搞差不多、打马虎眼;就是要把抓改革落实的战术打法弄清楚,积累经验、明辨得失,为继续探索摸石头、找路径;就是要科学评估改革方案举措的落实情况,把改革成效理清楚,为改革决策提供科学参考;就是要突出问题导向,把改革遇到的矛盾和问题搞清楚,精准施策、靶向治疗,提高改革的精准度、穿透力。面对异性就容易冲动,即便不是他期待中的人,他们也会幻想成在跟一个盼望已久的公主或者王子谈恋爱,丧失了原本的判断力。  

动态域名解析,或DNSR,通常用于解析IP地址经常变化的域名。电信网络提供了公网IP,给广大程序员远程办公、内容分享等方面带来了极大的便利。但公网IP是动态的,它会经常变化,因此通过IP的方式访问非常不友好。因此就需要引入“花生壳”等动态域名解析工具,这类解析工具限制很多,如免费版只能使用指定的二级域名,解析的各类很少,域名数量有限制等等。

还好我们有.NET(和阿里云)通过简短的几行.NET代码,即可轻松完成动态域名解析。

动态域名解析的过程

  • 第一步 知道自己的IP地址
  • 第二步 更新DNSIP解析值

获取自己的IP地址

现在网上有许多网站、服务或者API可以快速获取自己的IP地址,如随手在百度上可以找到申博在线娱乐登入/www_ip138_com/,国外还有申博在线娱乐登入/www_ipify_org/等服务,都挺好用。这些服务.NET也可以做,只需几行简短的代码,然后部署到服务器上:

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()));

我已经将该代码部署到了服务器上,域名是:申博在线娱乐登入/echo-ip_starworks_cc,可供有需要的朋友测试。

更新DNS解析值

各大域名网站都有自己的DNS解析API或者SDK,阿里云也不例外,我可以通过几行简短的C#代码即可更新DNS解析值:

/安装NuGet包:aliyun-net-sdk-alidns
string currentIp = new WebClient().DownloadString("/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<T>(T request),这样一来不太方便,可以调用哪些方法不能一目了然,二来还会让调用方感觉很迷惑,明明是更新操作,为什么要调用Get

与此相比,腾讯云提供的SDK就人性化很多,虽然我的域名绑定在阿里云上。??

不是80端口怎么办?

默认是不允许80/443端口开放外网的,因此即使有动态域名绑定,以后发给客户时,网址里面也带一个长长的端口名,如:/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",
}

这样一来,只需在浏览器中输入:/cool_starworks_cc,即可自动显示我/home_starworks_cc:44403 的内容:

总结

文中的“祖传代码”链接如下,可随意下载使用,用LINQPad打开:

其中管理界面运行效果如下:

使用时将我的starworks.cc域名换成你的即可。

说来其实我不太关心.NET以后会发展成什么样子,相比之下,我更关心我立马能用.NET做出什么来。.NET Core 3.0已经发布,其新功能还没来得及细看,但.NET当下能提供给我的想象力就已经非常丰富了,这可能就是我心中的“自由”:只要探索,总会有新的发现。

喜欢的朋友请关注我的微信公众号:【DotNet骚操作】

DotNet骚操作

posted @ 2019-09-28 00:06 .NET骚操作 阅读(...) 评论(...) 申博在线娱乐登入 编辑 收藏
申博游戏平台登入 菲律宾太阳娱乐网138登入 申博138怎么登入不了 菲律宾申博娱乐直营官网 申博电子游戏备用网址 申博安卓手机下载
www.99msc.com 申博支付宝充值 www.tyc123.com 申博登录网址登入 申博官网登录 申博电子游戏开户登入
申博太阳城138官网直营 百家乐微信支付充值 188申博直属现金网登入 申博官网开户登入 菲律宾太阳网上娱乐 申博游戏官网登入