吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4609|回复: 9
收起左侧

[易语言 转载] 阿里云动态域名解析(开源) - NodeJS + 易语言

[复制链接]
苏筱冰 发表于 2021-6-24 11:17
说到动态域名解析用过的人第一个想到的估计就是向日葵,但是向日葵总是故意解析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解析至域名,看图
QQ图片20210624110113.jpg
软件打开会自动对比一次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)

免费评分

参与人数 1吾爱币 +1 收起 理由
tutu75738 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xiaoyuer27 发表于 2021-7-8 16:09
现在的IPV4已绝,家庭快带的IP基本已经是城域网的IP了,没有独立IP可言。
EliVenom 发表于 2021-7-9 16:40
xiaoyuer27 发表于 2021-7-8 16:09
现在的IPV4已绝,家庭快带的IP基本已经是城域网的IP了,没有独立IP可言。

是呀,我们这找移动宽带的客服要公网IP,要不到
 楼主| 苏筱冰 发表于 2021-7-13 09:36
EliVenom 发表于 2021-7-9 16:40
是呀,我们这找移动宽带的客服要公网IP,要不到

移动联通可以试试是否本身就是公网IP
我刚架好联通网的时候不知道是否公网IP,打电话给联通客服,联通客服死活不愿意给公网IP,说一定要企业才能够申请公网IP,后来我自己偶然试了一下,已经就是公网IP
EliVenom 发表于 2021-7-13 11:57
苏筱冰 发表于 2021-7-13 09:36
移动联通可以试试是否本身就是公网IP
我刚架好联通网的时候不知道是否公网IP,打电话给联通客服,联通客 ...

好滴,非常感谢!下班回家后试试
sdpc120 发表于 2021-7-16 22:10
我的云南电信宽带要到了公网ip,云南联通和移动都不给
n_g 发表于 2021-7-16 22:15
这样需要有台电脑一直开着才能行,有点浪费资源
爱妃!朕来了 发表于 2021-7-18 13:05
现在都是IPV6地址了,不要公网IP地址了
hjhboy 发表于 2021-11-25 00:52
正好需要  感谢分享  有了DDNS也要有80上行才行   不然作用不大
Ttl 发表于 2023-4-19 22:19
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表