对不起,我对网络编程和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,因为它们在同一个网络上..但如何以编程方式知道它?
答案 0 :(得分:2)
您应该可以使用htres.socket.address().address
来获取IP。
答案 1 :(得分:1)
查看HTTP Request对象可用的request.connection.remoteAddress属性。这表示执行请求的远程主机的地址。