[英]NodeJS - Get real ip address of a request instead of Cloudflare's ip address
Cloudflare更改了命令请求的IP地址,因为Cloudflare是我的网站和互联网之间的中间件,代理。
我应该如何获取请求的初始IP地址 ,而不是Cloudflare的IP地址。 我听说过mod_cloudflare
但是这个插件只更新了我的日志中的ip地址(?),我找不到nginx的版本。
Cloudflare在每个请求中设置CF-Connecting-IP
和X-Forwarded-For
标头
您只需从该标头获取IP:
let ip = req.headers['cf-connecting-ip'] || req.headers['x-forwarded-for'] || req.connection.remoteAddress
我选择了订单,因为Nginx还设置了X-Forwarded-For
标头
你在使用快递吗? 如果是这样,您可以使用cloudflare-express中间件包来检索您需要的IP地址。
var cloudflare = require('cloudflare-express');
...
var express = require('express');
var app = express();
...
app.use(cloudflare.restore({update_on_start:true}));
然后,用户的原始地址在req
对象上显示为cf_ip
。
如果您的快速应用程序位于典型的nginx反向代理后面,您也可以使用express的trust proxy
设置 。
例如:
app.set( 'trust proxy', 'loopback' ); //trust localhost reverse proxy
其他请求处理框架很可能有自己的包来做类似的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.