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

三、完成

相关推荐
DC_BLOG2 天前
VPN简述
运维·服务器·网络·ip
杰哥的技术杂货铺3 天前
Linux 系统 nvm 管理node无法使用
linux·node·nvm·libstdc++.so.6·libm.so.6
xiaoxiongip6663 天前
国内动态短效sk5
运维·服务器·网络·tcp/ip·ip
itas1094 天前
Electron获取nodejs和chrome版本信息
javascript·chrome·electron·nodejs·node
无敌岩雀5 天前
【计算机网络】网络层详解
网络·计算机网络·ip
ulimpid6 天前
ENV | VUE3 的安装使用并跑通第一个项目(高效实操版)
npm·vue·node
Tony聊跨境6 天前
Shopee虾皮店铺难出爆品?你可能忘了测款!
网络·ip
DC_BLOG7 天前
组播基础-2-IGMP协议
运维·服务器·网络·ip
GoppViper10 天前
golang实现getRegion获取ip所属地区的函数
开发语言·后端·tcp/ip·golang·ip
搬砖的果果10 天前
跨境电商中,海外HTTP代理是必须的吗?
服务器·网络·网络协议·tcp/ip·ip