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

三、完成

相关推荐
悟空空心10 小时前
服务器长ping,traceroute
linux·服务器·网络·ssh·ip·ping++
怣疯knight2 天前
几个好用的ip纯净度检测网站
网络·ip
aiguangyuan5 天前
Node项目中两个常用的环境变量配置工具
node·后端开发
明月心9527 天前
IP 中 0/24 和 0/16 的区别
linux·服务器·网络·ip
自律的蜗牛9 天前
Systemd(Linux 系统级守护,最稳定)node
docker·容器·node
我爱学习_zwj11 天前
Node.js:从浏览器到服务器的JS革命
javascript·node
276695829213 天前
闪购商家端 mtgsig
java·python·c#·node·c·mtgsig·mtgsig1.2
Han.miracle14 天前
网络层-IP 协议全景解析:从地址分配到内网穿透,解锁互联网通信底层密码
服务器·网络·网络协议·ip
泰克生物16 天前
纳米二抗:破解 IP 实验痛点,多场景赋能免疫检测的高效工具
ip·亲和力·wb·ip-wb·纳米二抗·特异性
cccyi717 天前
网络层与 IP 协议详解
tcp/ip·ip·网络层