我正在学习Node。有人告诉我,我可以使用Express的IPS property请求来确定请求是否是远程的(即不是localhost)。我的问题是,怎么样?
当我阅读IPS属性的documentation时,我不清楚如何确定是否从我的本地开发机器发出了请求。
谢谢!
答案 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
查看此内容,然后决定要执行的操作。