当前位置: 首页 > 知识库问答 >
问题:

Nodejs-DNS. Lookup正在拒绝使用HTTP的URL?

端木昱
2023-03-14

我正在尝试在Nodejs中构建一个Api,它接受URL并检查它是否是有效的网站。

现在是dns。查找拒绝任何无效的URL(假网站),并接受任何有效的URL,只要它们不以HTTP://或HTTPS://开头。这是有问题的,因为有效的URL被拒绝。

因此,此URL生成“无错误”消息:

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)
  }
});

这个带有HTTPS的URL会产生“错误”消息:

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)
  }
});

控制台。日志输出:

错误:错误:getaddrinfo ENOTFOUNDhttp://www.google.ca/--未定义--未定义

是否有办法配置dns。查找以接受以HTTP或HTTPS开头的URL?

共有1个答案

郜彦
2023-03-14

dns.lookup接受主机名。协议不是主机名的一部分,因此不应传入。只需通过正则表达式从URL中删除超文本传输协议/https,然后再将其传递给dns.lookup函数:

const url1 = 'https://google.ca';
const url2 = 'google.com';

const REPLACE_REGEX = /^https?:\/\//i

const res1 = url1.replace(REPLACE_REGEX, '');
const res2 = url2.replace(REPLACE_REGEX, '');

console.log(res1);
console.log(res2);

// dns.lookup(res1...);
 类似资料:
  • 我创建了一个带有服务和活动的Android测试程序。在活动中,我启动粘性服务。服务每10秒发出http请求。如果我不退出活动,一切正常。如果我退出,某个时候服务可以工作,然后被系统杀死并重新启动。重新启动后,有时http请求可以工作,有时会给出错误消息: 更新05.10.17我注意到连接不仅在服务重新启动后消失,而且在2-3分钟后,当退出活动时也会消失。当我返回活动状态时,连接将恢复。我做了一个视

  • 问题内容: 我正在尝试通过NodeJS文件连接到mySQL,但是收到以下错误: 奇怪的是,我可以通过运行终端通过终端连接。我只在运行JavaScript时收到此错误。我已经遍历了Google和StackOverflow,但仍然找不到有效的解决方案。我在虚拟机上的Ubuntu 16.04.1上使用MySQL 5.7.16。不知道VM是否在这里有所作为。我的Javascript代码如下: 我已经尝试在

  • 我正在尝试运行https://github.com/hazelcast/hazelcast-nodejs-client的“使用客户端”部分中提供的基本示例代码 我收到连接拒绝错误。我在我的Mac和PC机器上尝试了这个,结果相同。它们运行的是Node v6.9.1。我没有任何特殊的防火墙设置。甚至尝试完全打开Windows防火墙。 我错过了什么吗? 首先,我创建了一个空节点项目,然后: 然后创建了一

  • 你好,我快绝望了。 我正在尝试使用Cron和NodeJS脚本将数据导入GoogleBigQuery。但我被拒绝访问错误: 我已经创建了一个服务帐户bq数据导入-user@arcane-支柱XXX。国际机械师协会。gserviceaccount。com 我创建了一个密钥,将其下载为JSON文件,并设置了环境变量 当我在本地机器上运行NodeJS脚本时,我得到了错误 我已经用Policy Troubl

  • 我对python还很陌生。我正试图为我正在从事的一个项目编写一个非常简单的web刮板。在这个过程中,我试图使用Tor来更改我的IP地址,这样我就不会与我正在刮取的服务断开连接。在将新IP添加到我的项目之前,我试图测试特定于获取新IP的代码。这是我正在测试的代码。 当我执行此操作时,会出现以下错误: IP 1:Traceback(最近一次调用last):文件“scrapingTools.py”,第8

  • 问题内容: 我正在试验来自简单NodeJS HTTP服务器的各种响应。我试图实现的效果是更快地呈现网页。由于响应是使用(对吗?)流式传输到浏览器的,所以我想我可以先呈现页面布局,而在延迟之后再呈现其余数据。 问题是,它好像没有发送响应,直到除非已写入的数据是足够长的时间,所以例如,而不是说,会做的伎俩。 Node是否正在缓冲我的写操作,直到数据足够大到可以发送为止?如果是这样,块大小是否可以配置?