我已经在我的树莓派上建立了一个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...“之外,没有输出。
发布于 2019-08-08 20:39:18
尝试像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 response对象的data属性中。
https://stackoverflow.com/questions/56436176
复制相似问题