我正在尝试构建一个为不同的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不同的东西。
答案 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:", "")
}