介绍
cloudflare-middleware 是一个 Node.js 中间件,可以轻松地从 Cloudflare 获取真实 IP 地址。当使用 Cloudflare 时,请求将通过 CDN,这也意味着您的服务器将看到一个 Cloudflare 的 IP 地址而不是客户端的真实 IP 地址。而使用 cloudflare-middleware 中间件,您可以轻松地获取客户端真实的 IP 地址。
安装
使用 npm 包管理器安装:
npm install cloudflare-middleware
使用
在您的 Node.js 应用程序中引入 cloudflare-middleware:
const cloudflareMiddleware = require('cloudflare-middleware');
在您的应用程序中使用中间件:
app.use(cloudflareMiddleware());
完成以上配置后,您的应用程序将自动包含客户端真实 IP 地址。您可以通过访问 req.realIp 属性来获取 IP 地址:
app.get('/', function(req, res){ console.log('客户端真实IP地址:', req.realIp); });
配置
我们可以通过给 cloudflareMiddleware() 方法传递一个对象来配置中间件:
app.use(cloudflareMiddleware({ trustedProxyRanges: [ '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16' ] }));
配置中可选的属性如下:
trustAzureHeader
当启用此选项后,中间件将接受来自 Azure(Azure Web Apps)的 IP 包头信息并使用其返回。
trustedProxyRanges
设置您的代理服务器 IP 地址段。例如,如果您有一堆负载均衡器,那么您可以在此处添加所有负载均衡器的 IP 地址段,以便中间件可以真正识别请求的 IP。默认情况下,中间件信任以下 IP 地址段:
- '127.0.0.1"
- '::1'
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
trust_X_Forwarded_For
当启用此选项时,中间件将尝试在从 Cloudflare 接收到的 X-Forwarded-For 首部中查找 IP 地址。
完整示例
以下是一个完整的示例,展示了如何使用 cloudflare-middleware:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- -------------------- - --------------------------------- ----- --- - ---------- -------------------------------- ------------ ------------- ----- ------------------------- ------------ --- ---------------- ---------- - ------------------- ------- -- ---- ------- ---
结论
在使用 Cloudflare 时,获取真实的客户端 IP 地址是一个有用的操作。使用 npm 包 cloudflare-middleware,您可以轻松地获取客户端真实的 IP 地址。这对于那些使用 Cloudflare CDN 的网站和应用程序来说,是一个十分有实际意义的工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562f681e8991b448e0b94