gpt4 book ai didi

javascript - 检查 Node 是否存在域名,如果不存在则返回 bool 值false,如果存在则返回域名

转载 作者:行者123 更新时间:2023-11-30 15:15:19 25 4
gpt4 key购买 nike

我正在尝试对域名进行查询(我将遍历整个域名)以查看它们是否存在。我希望任何不存在的域名都返回 bool 值 false,而任何返回域名本身的域名(这样我就可以将其保存到文件中)。目前我有:

var http = require('http'),
options = {method: 'HEAD', host: 'stackoverflow.com', port: 80, path: '/'};
req = http.request(options, function(r) {
console.log(JSON.stringify(r.headers));
});
req.end();

这是非常基础的,但我整晚都在努力处理 Python 和 Java 代码库,我真正想要的是一个 if 语句,它可以检查 url 的有效性,而不必弄乱 header ,它如果我更改上面的代码,我将不得不这样做。

本质上我只是想要:

if(request === successful) {
return url;
} else {
return false;
}

为伪代码道歉。欢迎指点(是的,我知道没有针对 JavaScript 的指点 ;))。

最佳答案

使用 dns就像我建议的那样,您可以执行以下操作:

const dns = require('dns');

let listOfHostnames = [
'stackoverflow.com',
'nodejs.org',
'developer.mozilla.org',
'google.com',
'whatisthisidonteven.net'
];

function hostnameExists(hostname) {
return new Promise((resolve) => {
dns.lookup(hostname, (error) => resolve({hostname, exists: !error}));
});
}

Promise.all(listOfHostnames.map(hostnameExists)).then((listOfStatuses) => {
// check results here
console.log(listOfStatuses);
});

dns.promises你甚至可以在没有 Promise 构造函数的情况下实现 hostnameExists():

const dnsPromises = require('dns').promises;

async function hostnameExists(hostname) {
try {
await dnsPromises.lookup(hostname);
return { hostname, exists: true };
} catch (_) {
return { hostname, exists: false };
}
}

关于javascript - 检查 Node 是否存在域名,如果不存在则返回 bool 值false,如果存在则返回域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com