以编程方式编辑UNIX主机文件

时间:2018-11-08 22:22:52

标签: node.js unix dns localhost

我当前正在使用一个主机文件将所有流量重定向到计算机上的某些外部主机,以便我的(nodejs)应用程序对其进行拦截。

/etc/hosts: 

127.0.0.1 externalhost.com

我的应用程序接收了所有应该流向externalhost.com的流量,然后决定是否

a)将请求转发到原始资源(例如,对externalhost.com/target_B的请求)

b)拦截请求并发送回自定义响应(例如,对externalhost.com/target_A的请求)

但是,原始资源是我在主机文件中定义的主机,因此创建了一个无限循环。

有没有办法以编程方式禁用主机重定向?由于性能原因,我不想每次都写入该文件。

1 个答案:

答案 0 :(得分:0)

我认为这种情况下的解决方案是从代码中重定向请求时尝试绕过/etc/hosts文件。

您可以尝试使用内置的dns模块来解析外部主机的IP地址,然后在请求中使用ip地址代替主机名。

dns.resolve4('externalhost.com', function (err, res) {
  var ip = res[0];
  console.log('IP address of externalhost: ' + res[0])
  request(ip + "/target_A")
})