nodejs - 知道服务器从哪个IP地址获取

时间:2014-05-26 14:42:39

标签: node.js ip

对不起,我对网络编程和nodejs都很陌生。我在服务器中使用节点与本地网络中的某些客户端。

有时我必须通过get request向客户询问数据:

// somewhere inside server.js
function askDataToClient(ip) {

    var options = {
        host: String(ip),
        port: 80,
        path: '/client/read',
        auth: 'username:password'
    };

    var request = http.get(options, function(htres){
        var body = "";
        htres.on('data', function(data) {
            body += data;
        });
        htres.on('end', function() {
            body = JSON.parse(body);
            res.json(body);
            res.end();
        })
        htres.on('error', function(e) {
            // ...
        });
    });
}

我想知道用于调用此get请求的服务器ip。

我知道this answer,但它为我提供了服务器计算机上所有活动的各种网络:

lo0 127.0.0.1
en1 192.168.3.60
bridge0 192.168.2.1

如果我查询客户端192.168.3.36,我知道它是第二个ip,192.168.3.60,因为它们在同一个网络上..但如何以编程方式知道它?

2 个答案:

答案 0 :(得分:2)

您应该可以使用htres.socket.address().address来获取IP。

答案 1 :(得分:1)

查看HTTP Request对象可用的request.connection.remoteAddress属性。这表示执行请求的远程主机的地址。