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

我有一个节点服务器,当他们击中某个url时,它会从外部源接收GET请求。 “ https://appname.herokuapp.com/example ”

我想让它到只有三个特定的IP可以打到该地址,并在我的服务器上运行GET。

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

我正在尝试这种方式,但每当外部来源访问该url时,我都会得到不同的IP地址。 他们说我得到的那些看起来像内部networkingIP,而不是外部的。 我做错了吗? 我只想得到服务器的IP打到地址,并确认它是3个validation的之一。

编辑:所以没有办法真正安全地确认他们的IP? 他们也在req.query中发送了一个秘密密钥,它已经超过了我的https herokuapp url,那么这是一个安全的设置吗?

正如Marc所说:

 app.get('/example', function (req,res) { var ip = req.headers['x-forwarded-for']; console.log(ip); if (ip === 'X' || 'X' || 'X') { //Do stuff } } 

但是做一个更好的地方是防火墙级别。