获取请求的真实ip

一、node代码

javascript 复制代码
const app = express();
app.get("/abc", (req, res) => {
 const forwardedForHeader = req.get("X-Forwarded-For");
 const realIpHeader = req.get("X-Real-IP");
 let realIp = null;

 if (forwardedForHeader && forwardedForHeader.length > 0) {
   // 逗号分隔的IP地址列表,取第一个地址为真实IP
   realIp = forwardedForHeader.split(",")[0].trim();
 } else if (realIpHeader) {
   // 如果X-Forwarded-For未设置,则使用X-Real-IP
   realIp = realIpHeader.trim();
 }
 if (!realIp) {
   realIp = req.socket.remoteAddress;
 }
 logger.info(realIp, "------真实ip------");
})

二、nginx配置(必须配置)

bash 复制代码
location ^~ /api {
    proxy_pass http://127.0.0.1:1111/a/;
    proxy_set_header Host 127.0.0.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

如果没配置,那么就可能拿不到真实ip

三、完成

相关推荐
IP管家2 天前
物联网设备远程管理:基于代理IP的安全固件更新通道方案
服务器·网络·物联网·网络协议·tcp/ip·安全·ip
christine-rr5 天前
【25软考网工】第六章(4)VPN虚拟专用网 L2TP、PPTP、PPP认证方式;IPSec、GRE
运维·网络·网络协议·网络工程师·ip·软考·考试
wc_xue_fei_le6 天前
5.12第四次作业
ip
IP管家8 天前
多级路由器如何避免IP冲突
网络·网络协议·tcp/ip·游戏·智能路由器·ip
迎风打盹儿10 天前
MATLAB仿真定点数转浮点数(对比VIVADO定点转浮点)
matlab·ip·vivado·定点数·浮点数
霖0013 天前
FPGA中级项目7———TFT显示与驱动
经验分享·fpga开发·学习方法·显示器·ip·集成学习
神里流~霜灭14 天前
Linux系统基础:基础指令简介(网络概念部分)
linux·c++·协议·ip·tcp
疏狂难除16 天前
【Tauri2】036——Sidecar和shell插件 (二)
node·tauri2
知了一笑18 天前
通过IP计算分析归属地
java·ip·ip定位·ip计算
刘大猫.19 天前
Centos Ubuntu RedOS系统类型下查看系统信息
linux·ubuntu·centos·ip·ifconfig·redos·查询系统信息