使用javascript为nodejs检查real-ip IP地址

时间:2012-07-07 08:07:37

标签: javascript node.js

我将此代码作为在nginx代理后面运行的nodejs应用程序的一部分:

var ip_address = (request.headers['x-real-ip']);
if (ip_address !== "127.0.0.1") {
    var ip = request.headers['x-real-ip'];
    console.log(ip);    
}
else {
    var ip = "173.194.41.100";
    console.log(ip);
}

我想要实现的是在我的本地开发机器上,为了测试我使用固定的IP地址,否则它从请求头读取x-real-ip。

我的问题是,有没有办法让这个更全面的证明,例如,有没有办法通过这个循环从而使var ip返回null,这会在我的应用程序上创建追溯?

1 个答案:

答案 0 :(得分:0)

  

我的问题是,有没有办法让这个更全面的证明,例如,有没有办法通过这个循环从而使var ip返回null,这会在我的应用程序上创建追溯?

如果您稍微更改一下,我们可以确定ip不会null

var ip, ip_address;
ip = ip_address = request.headers['x-real-ip'];
if (ip === null || ip === "127.0.0.1") {
    ip = "173.194.41.100";
}
console.log(ip);

如果ip评估为null,您的原始代码会request.headers['x-real-ip'] null,因为您的条件(ip_address !== "127.0.0.1")将为true,然后你将request.headers['x-real-ip']null)抓到ip

使用上面修改过的代码,我们没有这个问题,我们也能够使它更简洁。