Javascript Nodejs-DNS.Lookup拒绝使用HTTP的URL?
我试图在Nodejs中构建一个Api,它接受一个URL并检查它是否是一个有效的网站 现在,dns.lookup拒绝任何无效的URL(假网站),并接受任何有效的URL,只要它们不是以HTTP://或HTTPS://开头。这是有问题的,因为有效的URL被拒绝 因此,此URL生成“无错误”消息: 此带有HTTPS的URL将生成“错误”消息: console.log输出: 错误:错误:getaddrinfo ENOTFOUND--未定义--未定义Javascript Nodejs-DNS.Lookup拒绝使用HTTP的URL?,javascript,node.js,http,dns,lookup,Javascript,Node.js,Http,Dns,Lookup,我试图在Nodejs中构建一个Api,它接受一个URL并检查它是否是一个有效的网站 现在,dns.lookup拒绝任何无效的URL(假网站),并接受任何有效的URL,只要它们不是以HTTP://或HTTPS://开头。这是有问题的,因为有效的URL被拒绝 因此,此URL生成“无错误”消息: 此带有HTTPS的URL将生成“错误”消息: console.log输出: 错误:错误:getaddrinfo ENOTFOUND--未定义--未定义 是否有方法将dns.lookup配置为接受以HTTP或H
是否有方法将dns.lookup配置为接受以HTTP或HTTPS开头的URL?
dns。lookup
采用主机名。协议不是主机名的一部分,因此不应传入。只需通过正则表达式从URL中删除http/https,然后再将其传递给dns。查找函数:
const url1='1!'https://google.ca';
const url2='google.com';
常量替换\u REGEX=/^https?:\/\//i
const res1=url1.replace(replace_REGEX.);
const res2=url2.replace(replace_REGEX',);
控制台日志(res1);
console.log(res2);
//dns.lookup(res1…)代码>dns。查找采用主机名。协议不是主机名的一部分,因此不应传入。只需通过正则表达式从URL中删除http/https,然后再将其传递给dns。查找函数:
const url1='1!'https://google.ca';
const url2='google.com';
常量替换\u REGEX=/^https?:\/\//i
const res1=url1.replace(replace_REGEX.);
const res2=url2.replace(replace_REGEX',);
控制台日志(res1);
console.log(res2);
//dns.lookup(res1…)
文档说dns.lookup()
将主机名作为第一个参数http
和https
是协议。在将这些部件传递进来之前,您能拉出它们吗?文档中说,dns.lookup()
将主机名作为第一个参数http
和https
是协议。你能在把这些零件送进去之前把它们拔出来吗?那很有效!我早就想到了,但不知道怎么做。我还担心在dns.lookup之后再添加HTTP,但我意识到这是不必要的。这很有效!我早就想到了,但不知道怎么做。我还担心在dns.lookup之后再添加HTTP,但我意识到这是不必要的。
dns.lookup('www.google.ca', function onLookup(err, address, family)
if (err == null) {
console.log ('No Errors: ' + err + ' - ' + address + ' - ' + family)
} else {
console.log ('Errors: ' + err + ' -- ' + address + ' -- ' + family)
}
});
dns.lookup('https://www.google.ca/', function onLookup(err, address, family)
if (err == null) {
console.log ('No Errors: ' + err + ' - ' + address + ' - ' + family)
} else {
console.log ('Errors: ' + err + ' -- ' + address + ' -- ' + family)
}
});