如何获取将服务器的IP发送到在Heroku上运行的节点服务器的IP?

时间:2015-09-01 18:46:25

标签: node.js heroku express

我有一个Node服务器,当它们访问某个url时,它会从外部源接收GET请求。 “ng-dygraph directive

我想将其发送到只有三个特定IP可以访问该地址并在我的服务器上运行GET的地方。

app.get('/example', function (req,res) {
  console.log(req.connection.remoteAccess);
  if (req.connection.remoteAccess === 'X' || 'X' || 'X') {
    //Do stuff
  }
}

我正在尝试这个,但每次外部源点击该URL时我都会获得不同的IP。他们说我得到的那些看起来像内部网络IP,而不是外部。我做错了吗?我只是想让服务器的IP命中该地址并确认它是3个经过验证的IP地址之一。

编辑:所以没有办法真正安全地确认他们的IP?他们还在req.query中发送了一个密钥,它在我的https herokuapp网址上,所以这是一个安全的设置吗?

1 个答案:

答案 0 :(得分:2)

As Marc said :

app.get('/example', function (req,res) {

  var ip = req.headers['x-forwarded-for']; 
  console.log(ip);

   if (ip === 'X' || 'X' || 'X') {
     //Do stuff
   }
}

But a much better place to do this would be at a firewall level.