说到动态域名解析用过的人第一个想到的估计就是向日葵,但是向日葵总是故意解析127.0.0.2 昨天一天都这样到了晚上才恢复 这种现象已经不止出现了一次
所以我一气之下就自己写了一个使用阿里云域名解析到自己的家庭宽带公网IP
注意事项:家庭宽带一定要是公网IP,家庭宽带一定要是公网IP,家庭宽带一定要是公网IP,重要的事情说三遍
首先上NodeJS代码,我用的是 Express 框架,然后安装下 @alicloud/pop-core 就可以
accessKeyId和accessKeySecret去阿里云自己申请,建议使用子账号的分配权限即可
[JavaScript] 纯文本查看 复制代码 const express = require('express')
const api = express.Router()
const Core = require('@alicloud/pop-core')
var client = new Core({
accessKeyId: '这里写你自己的accessKeyId',
accessKeySecret: '这里写你自己的accessKeySecret',
endpoint: 'https://dns.aliyuncs.com',
apiVersion: '2015-01-09'
})
// 获取解析记录列表
api.post('/DescribeDomainRecords', async (req, res) => {
var params = {
"DomainName": "这里写你自己要解析的域名"
}
var requestOption = {
method: 'POST'
}
await client.request('DescribeDomainRecords', params, requestOption).then((result) => {
res.send(JSON.stringify(result))
}, (ex) => {
res.send(ex)
})
})
// 修改解析记录
api.post('/UpdateDomainRecord', async (req, res) => {
console.log(JSON.stringify(req.body))
var params = req.body
var requestOption = {
method: 'POST'
}
await client.request('UpdateDomainRecord', params, requestOption).then((result) => {
res.send(JSON.stringify(result))
}, (ex) => {
res.send(ex)
})
})
module.exports = api
接下来是易语言的界面
主要功能就是定时获取本机公网IP和域名解析的ip,如果发现本机IP和域名解析IP不一致,那么就将本机的IP解析至域名,看图
软件打开会自动对比一次IP,之后24小时才会自动更新,手动点击刷新按钮也可以
时间方面源码里自行更改
对了还有个获取公网IP的事情说一下
一开始我是使用IP138获取公网IP的,但是我在调试的时候会频繁的访问获取IP,所以一段时间过后就无法访问了,要等待一段时间才能继续访问,亲测 我换了个IP就能访问了
所以用NodeJS写了一个获取公网IP的接口,直接在易语言里面调即可,下面贴代码
引入express 安装下public-ip即可
[Asm] 纯文本查看 复制代码 const express = require('express')
const api = express.Router()
const publicIp = require('public-ip')
api.get('/getPublicIp', async (req, res, next) => {
await publicIp.v4().then(ip => {
res.send(ip)
})
})
api.post('/getPublicIp', async (req, res) => {
await publicIp.v4().then(ip => {
res.send(ip)
})
})
module.exports = api
通过以上代码其实不需要易语言也可以搞定的,这个很简单就你们自己改了
下面是易语言代码,模块都是封装超级模块的,自己自行更换,皮肤模块自行删除引用和启动窗口子程序及销毁的调用代码,我也懒得改了
阿里云动态域名解析.zip
(30.4 KB, 下载次数: 112)
|