[英]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.