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

三、完成

相关推荐
UestcXiye6 小时前
《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列
c++·计算机网络·ip·tcp
Tony聊跨境9 小时前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
daqinzl16 小时前
java获取机器ip、mac
java·mac·ip
xiaoxiongip66618 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
IPdodo全球网络2 天前
如何在家庭网络中设置静态IP地址:一份实用指南
网络·tcp/ip·智能路由器·ip
蝌蚪代理ip2 天前
辩论赛——动态IP与静态IP的巅峰对决
网络·网络协议·tcp/ip·ip
Jackilina_Stone3 天前
【Linux】网络相关的命令
网络·ubuntu·ip
Tony聊跨境4 天前
代理IP地址和端口是什么?怎么进行设置?
tcp/ip·ip
OkeyProxy4 天前
怎麼解除IP阻止和封禁?
ip·ip地址·isp·代理服务器·海外ip代理
檀越剑指大厂4 天前
使用 API 和离线库查询 IP 地址方法详解
ip