【问题标题】:check real-ip IP address with javascript for nodejs使用javascript检查nodejs的真实IP IP地址
【发布时间】:2012-07-07 08:07:36
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    我的问题是,有没有办法让这个证据更充分,例如,有没有办法绕过这个循环,从而使 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);
    

    如果request.headers['x-real-ip'] 评估为null,您的原始代码将使ip null,因为您的条件 (ip_address !== "127.0.0.1") 将是 true,而您将抓住 request.headers['x-real-ip'] (null ) 转入ip

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

    【讨论】:

    • @kninester:很好,很高兴有帮助。顺便说一句,我只是稍微编辑了一下,因为我意识到您在发布的代码中同时声明了 ipip_address,而我只是声明了 ip(假设 ip_address 已经声明,它不是t)。
    • 谢谢,事实上我并不需要同时声明它,这里是代码github.com/nkhine/phoenix/blob/master/ui/core/js/node/lib/…
    • @khinester:啊,很好——我想你可能出于其他原因保留了原始值。 :-)
    猜你喜欢
    • 2013-10-02
    • 2020-10-03
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2011-06-08
    • 2011-10-19
    相关资源
    最近更新 更多