Найдите подходящих игроков LAN - PullRequest
0 голосов
/ 20 октября 2018

Я использую простой сервер node.js, который также использует веб-интерфейс с помощью Express.Каждый раз, когда клиенты заходят на веб-сайт, я хотел бы узнать, кто еще из этой клиентской сети подключен.


Я знаю, что могу прочитать локальный IP-адрес каждого клиента, используя некоторый синтаксис, такой какthis.

 var ip = req.headers['x-forwarded-for'] || 
 req.connection.remoteAddress || 
 req.socket.remoteAddress ||
 (req.connection.socket ? req.connection.socket.remoteAddress : null);

... но как определить, какие клиенты находятся в одной сети?(LAN)

Я знаю, что IP-адрес почти не нужен / ненужен из-за неизвестного в настоящее время идентификатора сети - но как я могу определить networkID на сервере nodeJS?

Редактировать : Возможно ли это также использовать socket-io с node.js?

Любая помощь будет очень признательна.Спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Если вы просто хотите проверить, находятся ли два игрока в одной локальной сети, достаточно взглянуть на их remoteAddress, используя ваш код.Возможно, вы захотите назначить уникальные идентификаторы каждому игроку, поэтому, если у вас есть 2 игрока с разными идентификаторами, но одинаковым IP-адресом, это означает, что они находятся в одной локальной сети.

С другой стороны, если вы действительно хотитечтобы получить их локальный IP-адрес для других целей, вы можете посмотреть этот ответ о том, как обрабатывать os.networkInterfaces()

...