我正在使用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?
});
答案 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
我不必添加事件监听器。