在node.js 4.x中,对于
据我所知,如果不指定它,则默认为或更喜欢ipv4,而浏览器(至少是Chrome)更喜欢ipv6。
有没有一种方法让node.js在可用时选择ipv6,还是我必须手动处理?
如果我要手动处理,应该怎么做?
http.request
函数,文档中表示:
当选项
- family:在解析主机和主机名时要使用的IP地址族。有效值为4或6。未指定时,将同时使用IP v4和v6。
family
未指定时,node.js选择ipv6或ipv4的逻辑是什么?据我所知,如果不指定它,则默认为或更喜欢ipv4,而浏览器(至少是Chrome)更喜欢ipv6。
有没有一种方法让node.js在可用时选择ipv6,还是我必须手动处理?
如果我要手动处理,应该怎么做?
传入
family: 6
,如果超时则传入family: 4
?进行DNS请求并检查是否返回ipv6地址,然后设置家族?
getent hosts hostname
返回IPv6地址,但是dns.lookup('hostname')
将IPv4地址传递给回调函数。 - nert/etc/hosts
。 - robertklep{ all: true }
传递给dns.lookup
,它就会解析所有地址,但是 IPv4 地址仍然排在第一位。所以我执行了dig hostname ANY
命令,并以相同的顺序返回它们。因此看起来 Node 确实将其留给系统处理,只是其他程序有自己的首选项。所以现在我需要弄清楚剩下的部分。谢谢 ;) - nert