获取请求的真实ip
2023-12-25 15:27:53
一、node代码
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配置(必须配置)
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
三、完成
文章来源:https://blog.csdn.net/lcc2001/article/details/135032921
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!