gpt4 book ai didi

node.js - 如何使用 Node.js 中的 WebSocket (websockets/ws) 库获取客户端 IP 地址?

转载 作者:IT老高 更新时间:2023-10-28 21:59:26 26 4
gpt4 key购买 nike

我在客户端对象上找不到客户端 IP 参数。

最佳答案

经过一番折腾,试图找出哪个提供了客户端(网络浏览器的)IP 地址,答案是:

ws._socket.remoteAddress

或者如果您可以通过 wss.on('connection', (ws, req) => {}) 访问 req:

req.socket.remoteAddress

您可以使用它,例如,GeoIP 定位用户连接的位置。

编辑:

如果您在 Nginx 反向代理(或任何其他反向代理)后面运行 Node,您可能需要使用:

req.headers['x-forwarded-for'] || req.socket.remoteAddress

关于安全性的说明:如果您的 Node 服务器可以直接使用以及通过反向代理使用,您可能希望在信任 x-forwarded-for 之前检查 remoteAddress 。远程地址应该是您的反向代理的 IP。有人可能会直接调用您的服务并欺骗 x-forwarded-for

关于node.js - 如何使用 Node.js 中的 WebSocket (websockets/ws) 库获取客户端 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com