我已经在运行 Express 的 Raspberry Pi 上设置了一个 Node.Js 网站。
我想使用动态 DNS 从 Node.JS/Express 更新我的 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...”之外没有任何输出
最佳答案
给出类似 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
属性中。
关于node.js - 如何使用 Node.js 和 Express 设置 Google Domains 动态 DNS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436176/