使用Express确定Node.js中的请求是否是远程的

时间:2015-09-29 16:51:36

标签: node.js express

我正在学习Node。有人告诉我,我可以使用Express的IPS property请求来确定请求是否是远程的(即不是localhost)。我的问题是,怎么样?

当我阅读IPS属性的documentation时,我不清楚如何确定是否从我的本地开发机器发出了请求。

谢谢!

2 个答案:

答案 0 :(得分:0)

// filter to git rid of non-local requests
app.all('/*', function(req, res, next) {
    if (req.ip.indexOf("127.0.0.1") > -1 )
    {
        console.log("Incoming request - Accepted");
        next();
    }
    else
    {
        console.log("Incoming request - Rejected");
        res.send("API only accessable from the local device").status(403).end();
    }
});

此代码基本上会过滤所有传入的请求,并检查它们是否来自本地主机。请记住,至少在Windows上,我以IPv6身份进入的本地主机地址::ffff:127.0.0.1这就是我们使用indexOf命令的原因。

答案 1 :(得分:-1)

在你的路线上:

app.get('/', function(req, res) {
  if (req.ip != '127.0.0.1') {
    //This is not localhost
  }
}

基本上,您要查看request的IP地址,并将其与您的IP地址进行比较。您可以通过req.ip查看此内容,然后决定要执行的操作。