快速/节点请求或IP

时间:2016-07-10 10:21:04

标签: node.js express ip

我正在尝试构建一个为不同的ip地址返回不同内容的API。例如,重定向到我的服务器(例如google.com)的某个域将显示一件事,而另一个域(例如amazon.com)将显示不同的域。

我曾尝试使用查看req.ip的中间件,但似乎req.ip始终从任何请求返回“:: ffff:127.0.0.1”。另外,我想通过最后一次跳转限制连接到我的服务器 - 即显示基于website.com的不同内容,其中: 客户端浏览器 - > website.com - >我的服务器。

我将如何使用Express.js

进行此操作

编辑:我认为人们误解了我的问题:我不想通过客户端的ip来过滤我的结果。我想通过最后一次反弹到我的服务器来过滤结果。即如果客户端连接到redirect.com并重定向到我的服务器,我想检测redirect.com的ip并根据它进行过滤。假设有另一个名为fam.com的网站也转发到我的服务器。我想向fam.com展示与redirect.com不同的东西。

1 个答案:

答案 0 :(得分:0)

这对我有用。

var ip = req.headers['x-forwarded-for'] ||
  req.connection.remoteAddress ||
  req.socket.remoteAddress ||
  req.connection.socket.remoteAddress;

if (ip && ip.startsWith("::ffff:")) {
  ip = ip.replace("::ffff:", "")
}