【问题标题】:How to set up Google Domains Dynamic DNS with Node.js & express?如何使用 Node.js 和 express 设置 Google Domains 动态 DNS?
【发布时间】:2019-06-04 01:03:57
【问题描述】:

我已经在运行 express 的 Raspberry Pi 上建立了一个 Node.Js 网站。

我想通过 Node.JS/Express 使用动态 DNS 更新我的 google DNS 域

我的尝试:

function domainUpdate() {
    console.log(`[SERVER] Posting to Google's Servers...`)
    let username = process.env.USERNAME || ``;
    let password = process.env.PASSWORD || ``;
    let hostname = process.env.HOSTNAME || ``;
    let url = `https://${username}:${password}@domains.google.com/nic/update?hostname=${hostname}`;

    https.request(url, (res) => {
        console.log(`status - ${res.statusCode}`);
        console.log(`output - ${res.complete}`)
    }).on("error", (e) => {
        if (e) throw e
    })

使用 curl 命令,它看起来像这样:

curl https://$USERNAME:$PASSWORD@domains.google.com/nic/update?hostname=$HOSTNAME&myip=$IP_ADDRESS

除了“[SERVER] Posting to Google's Servers...”之外没有任何输出

【问题讨论】:

标签: node.js express dns


【解决方案1】:

尝试使用Axios 之类的内容来提出实际请求。它为您处理了很多繁重的工作:

const axios = require('axios');

function domainUpdate() {
    console.log(`[SERVER] Posting to Google's Servers...`)
    let username = process.env.USERNAME || ``;
    let password = process.env.PASSWORD || ``;
    let hostname = process.env.HOSTNAME || ``;
    let url = `https://${username}:${password}@domains.google.com/nic/update?hostname=${hostname}`;

    axios.get(url)
    .then(res => {
      console.log(`status - ${res.status}`);
      console.log(`output - ${res.data}`);
    })
    .catch(err => {
      throw err;
    })
}

只要请求格式正确,该端点就会返回 200。您链接到的 Google support article 列出了可能的响应,这些响应将位于您的 Axios 响应对象的 data 属性中。

【讨论】:

    猜你喜欢
    • 2016-10-18
    • 2014-10-20
    • 1970-01-01
    • 2021-09-12
    • 2017-12-02
    • 2017-05-14
    • 2020-02-27
    • 2019-05-11
    • 2013-07-15
    相关资源
    最近更新 更多