我正在运行一个简单的 node.js 服务器,它也使用 express 获得一个网络界面。 每次有客户访问该网站时,我都想了解此客户网络中还有哪些人已连接。
我知道我可以使用类似这样的语法读出每个客户端的本地 IP 地址。
var ip = req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
(req.connection.socket ? req.connection.socket.remoteAddress : null);
...但是我如何确定哪些客户端在同一网络中? (局域网)
我知道 IP 地址几乎是不必要的/不必要的,因为当前未知的网络 ID - 但我如何确定 nodeJS 服务器上的网络 ID?
编辑:是否也可以将 socket-io
与 node.js 一起使用?
任何帮助将不胜感激。谢谢。
最佳答案
如果您只想检查两个玩家是否在同一局域网中,使用您的代码查看他们的remoteAddress
就足够了。您可能希望为每个玩家分配唯一的 ID,因此如果您有 2 个具有不同 ID 但 IP 地址相同的玩家,这意味着他们在同一个 LAN 中。
另一方面,如果您真的想获取他们的本地 IP 地址用于其他目的,您可能需要查看 this answer关于如何处理 os.networkInterfaces()
关于javascript - 获得匹配的局域网玩家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52908653/