申博在线娱乐登入

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

用.NET做动态域名解析

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

申博在线娱乐登入,他们认为从互联网已经对日常生活带来的翻天覆地的变化看,似乎完全可以推导出以上结果。我认为应该率先把互联网的优质教育资源发送到基础最薄弱的地方去,城市里我们可以慢一点,或者用市场的方式来做,但是首先要做到雪中送炭。  他任职的这家基金会的年度余额在过去4年里几次翻番。该负责人介绍,互联网+教育是一种新兴产业,它的出现将让教育从封闭走向开放。

  林先生说,他也算是苹果的忠实用户,但现在发生了这件事,在维权的时候他才切实感觉到,自己就是个弱者。埃尔南戈麦斯命中三分,香波特回敬三分,贝克两罚一中,克里斯-安德森拉杆上篮得手,詹姆斯-琼斯飚进三分,库兹明斯卡斯三分也有,半节过后,骑士领先30分。据悉,与会人数将超过2000人,来自政府部门、广播电视台、互联网企业、影视与节目制作机构、电信运营商、智能硬件公司、投资机构、研究机构等网络视听全产业链的嘉宾、参展商家将超越以往三届的规格和规模。17173新闻导语12月3日,在梦幻西游2016嘉年华发布会现场,《梦幻西游》手游制作人陈俊雄先生正式宣布,《梦幻西游》手游大家庭将迎来两位新朋友——英女侠、羽灵神。

  【游侠网】《丧尸围城4》全BOSS一览  视频出场BOSS一览:  00:00-Sandra  01:24-Flametrooper  03:49-Lieutenant  09:42-Fontana  13:15-Tom  16:53-Calder(终极Boss)  《丧尸围城4》的时间设定是在《丧尸围城》初代作品的16年之后,West决定揭开丧尸爆发的真相。目前,该平台已线上入驻3000多名学生和青年导演,预计在2017年上半年将聚合超过万名导演。城市交通咨询公司Valoriser合伙人贾斯帕辛格(JaspalSingh)表示:“在中国吃了败仗后,Uber不可以在印度再输给一个本土企业。  芒果TV新平台价值凸显优势互补、一体发展是关键  吕焕斌在演讲中表示:“芒果TV以“独播”起步,向“独特”发力,依靠内容优势“弯道超车”,从业界认为的不可能变成研究的样板,成为体制内打造的被市场认可、在市场中占有一席之地的新兴媒体平台。

动态域名解析,或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骚操作 阅读(...) 评论(...) 编辑 收藏
申博在线娱乐登入
www.66js.com www.662588.com 申博太阳城游戏帐号登入 申博开户网登入 菲律宾申博游戏登入 菲律宾太阳网上娱乐99
申博代理登录 申博太阳城登入 申博太阳城网址 菲律宾申博直营网 www.123456msc.com 申博官网登录
新版太阳城申博开户 申博游戏下载网址 申博娱乐城直营网 申博娱乐网登入 www.msc22.com 菲律宾申博官方网址