内容简介:NodeJS + Aliyun 实现 DDNS
DDNS,即动态DNS,简单来说就是服务器的 IP 地址经常变动,这个时候需要一个主动上报的服务来更新 DNS 的解析记录,保证域名指向正确的 IP 地址。
比如在自己家中的树莓派上部署了某些服务,且路由器有公网 IP,由于每次重新拨号,公网 IP 都会变,所以想要根据域名去访问树莓派,必须做 DDNS。
DDNS 可以选择 花生壳,但是花生壳提供的 DDNS 服务无法自定义域名,配置起来也较为麻烦,所以这里用 NodeJS 来实现一个 DDNS 服务。
源码地址(https://github.com/luoye-fe/aliyun-ddns)
原理
-
定期获取本机公网 IP
-
比对当前 DNS 解析记录
-
如果不一致,调用阿里云的 API 更新 DNS 记录
相关资料
实现
获取公网 IP
访问 http://ifconfig.me/ip
获取本机外网 IP,注意需伪造 UA,不然403
阿里云 API 接口鉴权
比较复杂,也比较坑爹,具体实现可以看放出的 git 源码
-
把所有请求参数按顺序序列化
-
把所有请求参数拼接成
encodeURIComponent(key)=encodeURIComponent(value)&encodeURIComponent(key)=encodeURIComponent(value)的形式得到signStr -
拼接字符串,
[请求方式]&encodeURIComponent('/')&[signStr],如GET&%2F&[signStr] -
HMAC SHA1 加密,加密的 key 为
[AccessKeySecret]&,注意最后的&
获取当前解析记录
DescribeSubDomainRecords
具体看文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- php如何实现session,自己实现session,laravel如何实现session
- AOP如何实现及实现原理
- webpack 实现 HMR 及其实现原理
- Docker实现原理之 - OverlayFS实现原理
- 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
- 自己实现集合框架(十):顺序栈的实现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 4: 交互设计精髓
[美] 艾伦·库伯、[美] 罗伯特·莱曼、[美] 戴维·克罗宁、[美] 克里斯托弗·诺埃塞尔 / 倪卫国、刘松涛、杭敏、薛菲 / 电子工出版社 / 2015-10 / 118.00元
《About Face 4: 交互设计精髓》是《About Face 3:交互设计精髓》的升级版,此次升级把全书的结构重组优化,更加精练和易用;更新了一些适合当下时代的术语和实例,文字全部重新编译,更加清晰易读;增加了更多目标导向设计过程的细节,更新了现行实践,重点增加 移动和触屏平台交互设计,其实《About Face 4: 交互设计精髓》多数内容适用于多种平台。 《About F......一起来看看 《About Face 4: 交互设计精髓》 这本书的介绍吧!