在Hapi.jsRestfulAPI中知道请求IP

Knowing request IP in Hapi.js Restful API

我正在与 node.js 和 hapi.js 一起开发 Restful API。我正在尝试记录请求我的其中一条路线的客户端的 IP。

这是我当前的代码:

function(request, reply){
    var ip = request.headers['x-forwarded-for'] || request.connection.remoteAddress;
    console.log('IP: ' + ip);

    //more code...
}

但是当我查看我的日志时,ip 是未定义的。 我该如何解决我的问题?

使用request.info.remoteAddress代替request.connection.remoteAddress:

var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress;

这里是对已接受答案的改进,它说明了在请求通过的情况下 x-forwarded-for header 可以是一组 comma-separated 多个 IP 地址的事实通过多个代理服务器。在这种情况下,客户端 IP 将是最左边(第一个)的 IP 地址。此代码将处理 header:

的两种可能格式
var xFF = request.headers['x-forwarded-for'];
var ip = xFF ? xFF.split(',')[0] : request.info.remoteAddress;