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

三、完成

相关推荐
liulilittle20 小时前
IP校验和算法:从网络协议到SIMD深度优化
网络·c++·网络协议·tcp/ip·算法·ip·通信
TeleostNaCl1 天前
OpenWrt | 在 PPP 拨号模式下启用 IPv6 功能
网络·经验分享·智能路由器·ip
liulilittle2 天前
OPENPPP2 —— IP标准校验和算法深度剖析:从原理到SSE2优化实现
网络·c++·网络协议·tcp/ip·算法·ip·通信
FPGA IP14 天前
基于LZO的无损数据压缩IP,高性能压缩速率32Gbps,压缩率50%,适用FPGA&ASIC
ip·fpga·无损压缩·lzo
网硕互联的小客服15 天前
服务器支持IPv6吗?如何让服务器支持IPv6
运维·服务器·ip
冲!!24 天前
使用nvm查看/安装node版本
前端·node.js·node·nvm
牛老师讲GIS1 个月前
node中shapefile字符集判断
字符集·node·shapefile·dbf·dbf文件
敲上瘾1 个月前
从“碎片化”到“完美重组”:IP报文的分片艺术
网络·网络协议·tcp/ip·ip
27669582921 个月前
东方航空 m端 wasm req res分析
java·python·node·wasm·东方航空·东航·东方航空m端