【问题标题】:nodejs dns error getaddrinfo ENOTFOUNDnodejs dns错误getaddrinfo ENOTFOUND
【发布时间】:2018-05-24 20:20:02
【问题描述】:

当我在Linux上使用命令测试时,出现如下错误,可以帮我解决吗?

sudo node -pe 'require("dns").lookup("http://www.amazon.com",function(){console.dir(arguments)})'

GetAddrInfoReqWrap {
  callback: [Function],
  family: 0,
  hostname: 'http://www.amazon.com',
  oncomplete: [Function: onlookup] }
{ '0': 
   { Error: getaddrinfo ENOTFOUND http://www.amazon.com
    at errnoException (dns.js:55:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:97:26)
     code: 'ENOTFOUND',
     errno: 'ENOTFOUND',
     syscall: 'getaddrinfo',
     hostname: 'http://www.amazon.com' } }

一些系统信息: 节点 -v v9.2.0

uname -a Linux 10-101-169-37 4.0.0-040000-generic #201504121935 SMP Sun Apr 12 23:36:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

【问题讨论】:

  • 你试过https而不是http吗?可能由于 http 上没有亚马逊而引发错误,但它们重定向到 https。

标签: node.js linux dns


【解决方案1】:

只需删除协议。当您想解析 dns 记录时,不需要协议。

DNS 协议不在乎它的 httphttpsftp、'smtp` 等...是否只需要解析 A 记录。

不要做http://www.amazon.comwww.amazon.com

这应该可以工作

sudo node -pe 'require("dns").lookup("www.amazon.com",function(){console.dir(arguments)})'

【讨论】:

  • 是的,没关系,DNS 协议不在乎它的httphttpsftp、'smtp` 等是否只需要 A 记录
猜你喜欢
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2017-10-16
  • 2018-03-03
  • 2014-10-20
  • 2018-01-31
相关资源
最近更新 更多