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

三、完成

相关推荐
柯北(jvxiao)1 天前
从崩溃到稳定:前端开发者必学的 Node.js 守护进程实战指南
node·守护进程
梁辰兴4 天前
企业培训笔记:axios 发送 ajax 请求
前端·笔记·ajax·vue·axios·node
啊森要自信5 天前
【Linux 学习指南】网络基础概念(一):从协议到分层,看透计算机通信的底层逻辑
linux·运维·服务器·网络·网络协议·tcp/ip·ip
ayuday5 天前
Volta比nvm智能的新一代node版本管理工具
nodejs·node·volta
kfepiza6 天前
Linux的NetworkManager的nmcli配置网桥(bridge) 笔记250712
linux·运维·网络·笔记·tcp/ip·ip·tcp
梁辰兴7 天前
企业培训笔记:Vue3前端框架配置
笔记·前端框架·npm·vue·vue3·node
Fanmeang11 天前
OSPF路由过滤
运维·网络·华为·ip·路由·ospf·路由过滤
与火星的孩子对话13 天前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
Fanmeang15 天前
OSPF高级特性之FRR
运维·网络·华为·ip·ospf·spf·frr
liulilittle1 个月前
OPENPPP2 VMUX 技术探秘(高级指南)
网络·信息与通信·ip·通信·mux