打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用node自动更新域名记录,腾讯云DNSPod,API,脚本,服务器

使用node自动更新域名记录,腾讯云DNSPod,API。


之前问电信拿了公网IP,但是每隔一段时间IP地址就会变,所以就打算写一个脚本每天定时检测IP地址有没有变化,如果有变化就自动更新。

->腾讯云API网址-<


第一步,获取API密钥

https://console.cloud.tencent.com/cam/capi
登录链接,自己生成自己生成一个API

第二步,获取更改记录的ID

  • 'Domain':'域名'写上你的域名
  • 找到secretIdsecretKey,填上你刚刚获取到API的ID和key
  • 运行文件,node 文件名.js
  • 找到你想要更改记录的ID”RecordId“:'--------',这就是你那条记录的ID
// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
const tencentcloud = require('tencentcloud-sdk-nodejs');
const DnspodClient = tencentcloud.dnspod.v20210323.Client;
const clientConfig = {
  credential: {
    secretId: 'SecretId',
    secretKey: 'SecretKey',
  },
  region: '',
  profile: {
    httpProfile: {
      endpoint: 'dnspod.tencentcloudapi.com',
    },
  },
};
const client = new DnspodClient(clientConfig);
const params = {
	// 这里写上你的域名
    'Domain': '域名'
};
client.DescribeRecordList(params).then(
  (data) => {
    console.log(data);
  },
  (err) => {
    console.error('error', err);
  }
);

第三步,更新记录

流程我说一下,先通过https://api.ipify.org/?format=json获取到公网IP,然后判断IP与DNSPod原本记录的是否相同,如果不同则更新。

  • 找到clientConfigparams1params2,找里面的信息改成你自己的
// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
const tencentcloud = require('tencentcloud-sdk-nodejs');
const request = require('request')

const DnspodClient = tencentcloud.dnspod.v20210323.Client;

const clientConfig = {
  credential: {
    secretId: 'secretId',
    secretKey: 'secretKey',
  },
  region: '',
  profile: {
    httpProfile: {
      endpoint: 'dnspod.tencentcloudapi.com',
    },
  },
};

const client = new DnspodClient(clientConfig);

const params1 = {
  'Domain': '域名',
  'RecordId': 域名记录的ID
};

const params2 = {
  'Domain': '域名',
  'SubDomain': '主机记录',
  'RecordType': 'A',
  'RecordLine': '默认',
  'Value': '',
  'RecordId': 域名记录的ID
};

new Promise((resolve, reject)=>{
  request('https://api.ipify.org/?format=json',function(err, res, body){  
    params2.Value = body.match(/'ip':'(.+)'\}$/i)[1].toString()
    resolve()
  })
}).then(res => {
  return new Promise((resolve, reject)=>{
    client.DescribeRecord(params1).then(
      (data) => {
        console.log('new:', data.RecordInfo.Value, 'old:' ,params2.Value);
        if(!data.RecordInfo.Value === params2.Value){
          // reject()
          resolve()
        }
      },
      (err) => {
        console.error('error', err);
      }
    )
  }).then(res => {
    return new Promise((resolve, reject)=>{
      client.ModifyRecord(params2).then(
        (data) => {
          console.log(data);
        },
        (err) => {
          console.error('error', err);
        }
      )
    })
  })
})

最后,添加任务

创建一个index.bat的文件,到时候直接执行就好

// index.bat
node 文件.js

将任务添加到任务计划程序





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
教你三步爬取掘金优质前端文章
node连接mysql查询事务处理的实现
uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号
详解如何使用Vue2做服务端渲染
实时检测微信域名防红拦截检测API-最新腾讯域名屏蔽检测官方接口
DNSPOD域名批量解析v2.8
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服