获取请求的真实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

三、完成

相关推荐
K_i13416 小时前
云原生网络基础:IP、端口与网关实战
网络·ip·接口隔离原则
lhxcc_fly2 天前
Linux网络--6、网络层
linux·网络·ip
liulilittle2 天前
国际带宽增长与用户体验下降的悖论
网络·网络协议·信息与通信·ip·ux·带宽·通信
你好,赵志伟3 天前
网络层(IP)
网络·ip
K_i13411 天前
IP分片过程深度解析
ip
TeleostNaCl13 天前
如何在 Windows 上使用命令设置网卡的静态 IP 地址
网络·windows·经验分享·网络协议·tcp/ip·ip
liulilittle19 天前
DNS泄露检测技术剖析:原理、实现
网络·ip·dns·泄露·通信·test·leak
boss-dog21 天前
Ubuntu22.04——配置固定IP
ubuntu·ip
-D调定义之崽崽21 天前
【初学】使用 node 编写 MCP Server
typescript·node·mcp
云游24 天前
IP地址管理:docker方式部署phpIPAMv1.7.3
运维·docker·ip·ipv4·ipv6