使用node.js请求模块时如何获取域的已解析IP地址?

时间:2016-09-19 10:02:25

标签: node.js request

我正在使用node.js请求模块,我希望在不使用dns模块的情况下获取已解析的IP地址。

E.g。

var request = require('request');

request("http://example.com", function(e, r, body) {
  // how do I get example.com IP address here?
});

2 个答案:

答案 0 :(得分:1)

显然,其他地方发布的response.connection.remoteAddress答案是正确的,但是当执行到达响应处理程序时,该值设置为undefined。为了解决这个问题,我添加了一个额外的事件监听器来保存值:

request("http://example.com", function(e, r, body) {
  console.log("doesn't work", r.connection.remoteAddress);
  console.log('does work', r.remoteIP);
}).on('response', function(res) {
  res.remoteIP = res.connection.remoteAddress;
});

答案 1 :(得分:0)

我不确定自从您发布答案以来情况是否有所变化,但是如果其他任何人遇到了该线程,则以下命令可以正常工作...

const request = require('request');

request("http://example.com", (e, r, body) => {
    console.log(r.connection.remoteAddress)
})

输出为:93.184.216.34

我不必添加事件监听器。