1

我将此代码作为在 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,这会在我的应用程序上创建回溯?

4

1 回答 1

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.

使用上面的修改后的代码,我们就没有这个问题了,而且我们也能够使它更简洁一些。

于 2012-07-07T08:14:04.113 回答