javascript - 获得匹配的局域网玩家

标签 javascript node.js ip ip-address

我正在运行一个简单的 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/

相关文章:

node.js - Chai 没有到达 .end()

ip - 当 TTL 变为 0 时谁丢弃 IP 数据包

php - Foreach 循环使用 php 获取记录中数组中的最后一项?

javascript - 使用 Javascript、jQuery 和 underscore.js 从多维数组中删除重复项

javascript - jquery ui selectmenu 小部件的最低 css 和 js 要求是什么?

javascript - 使用 'connection' 关键字连接到 Node JS websocket 时出现问题

node.js - Monorepo – Yarn workspaces Typescript Node.JS 项目 – 运行 nodemon 时找不到模块

Twilio IP 消息传递/聊天支持文件传输吗?

Javascript数组拼接导致内存不足异常?

php - 下拉自动填写表格,包括复选框