Node.js 节点覆盖请求IP解析

Node.js 节点覆盖请求IP解析,node.js,http,dns,request,ip,Node.js,Http,Dns,Request,Ip,我正在努力找到正确的术语来准确表达这个问题,但我会尽我最大的努力: 在node.js中,是否有方法在发出HTTP请求时手动覆盖IP地址(例如,请求some domain.com/whatever,而不是通过DNS解析IP地址,手动提供一些IP地址1.2.3.4) 有效地说,这相当于在/etc/hosts中设置1.2.3.4 some domain.com,我建议查看DNS API()上的Nodejs文档。您可以修改OS主机文件并使用dns.lookup()从主机文件中提取,而不执行dns查询 不

我正在努力找到正确的术语来准确表达这个问题,但我会尽我最大的努力:

在node.js中,是否有方法在发出HTTP请求时手动覆盖IP地址(例如,请求
some domain.com/whatever
,而不是通过DNS解析IP地址,手动提供一些IP地址
1.2.3.4


有效地说,这相当于在
/etc/hosts
中设置
1.2.3.4 some domain.com
,我建议查看DNS API()上的Nodejs文档。您可以修改OS主机文件并使用dns.lookup()从主机文件中提取,而不执行dns查询


不确定是否试图避免修改主机文件

有一个很小的模块可以做到这一点:


节点的http和https模块将代理作为参数,您可以使用覆盖dns解析器

consthttp=require(“http”);
const https=require(“https”);
const staticLookup=(ip,v)=>(主机名,opts,cb)=>cb(null,ip,v|4)
const staticDnsAgent=(scheme,ip)=>newrequire(scheme).Agent({lookup:staticLookup(ip)})
http.get(“http://some-domain.com/whatever“,{agent:staticDnsAgent('http','1.2.3.4')}

是的,我希望不必修改主机文件(这将节省大量的复杂性)。您能再解释一下这个用例吗?这适用于少数主机名,您希望在其中设置静态IP等?它适用于通过对PHP脚本的HTTP请求进行远程自动化处理,其中指定了域和IP地址,但尚未始终通过相应的名称服务器进行关联。此请求必须指定域名的原因是服务器通常会运行多站点设置。您知道如何执行此操作吗?
evilDns.add('foo.com', '1.2.3.4');