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

三、完成

相关推荐
Fanmeang4 天前
OSPF路由过滤
运维·网络·华为·ip·路由·ospf·路由过滤
与火星的孩子对话6 天前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
Fanmeang8 天前
OSPF高级特性之FRR
运维·网络·华为·ip·ospf·spf·frr
liulilittle21 天前
OPENPPP2 VMUX 技术探秘(高级指南)
网络·信息与通信·ip·通信·mux
昂子的博客21 天前
Springboot仿抖音app开发之Nacos 分布式服务与配置中心(进阶)
java·spring boot·redis·后端·mysql·ip
liulilittle22 天前
主流防火墙策略绕过漏洞的修复方案与加固实践
网络·安全·网络安全·信息与通信·ip·通信
百锦再23 天前
Modbus上位机访问形式详解及代码示例
串口·上位机·ip·tcp·modbus·ascii·网口
liuyang___1 个月前
日期的数据格式转换
前端·后端·学习·node.js·node
IP管家1 个月前
TikTok矩阵养号实战:住宅IP纯净度与设备指纹联动方案
大数据·网络·tcp/ip·ip
魔性的哈哈@1 个月前
实验三 企业网络搭建及应用
计算机网络·ip