NodeJS | Фильтровать устройство в зависимости от имени источника для протокола ARP и пункта назначения широковещания. - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть точка доступа Ubiquiti в моей сети, и через wireshark я вижу, что она отправляет трансляцию через ARP (как вы можете видеть на изображении ниже):

  • как источник, который она всегда имеет префикс "Ubiquiti _"
  • Пункт назначения: широковещательный
  • Протокол: ARP

Данные Wireshark

Теперь я хотел фильтр для этого фиксированного префикса «Ubiquiti_», чтобы динамически получать устройства MA C и IP-адреса (не зная их заранее). Я искал широковещательные / arp node js пакеты, но большинство из них запрограммированы таким образом, что вам нужно знать IP-адрес устройства, которое вы хотите прослушать, - и в этом случае я хотел бы сделать это динамически.

Если бы я мог каким-то образом получить тот же результат с помощью nodejs пакета / кода, который я сейчас получаю через Wireshark, это решило бы мою проблему.

Любые советы или подсказки приветствуются!

1 Ответ

0 голосов
/ 25 февраля 2020

Я нашел два решения к настоящему времени. Если у кого-то есть подобная проблема, попробуйте следующее:

  • npm пакет "local-devices" обращается к таблице ARP и возвращает все IP-адреса и адреса MA C. Это в сочетании с базой данных поставщика OUI (Организационно-уникальный идентификатор) позволяет выполнять фильтрацию для устройства Ubiquiti.

  • с зависимостью dgram. Я запускаю сервер, который прослушивает настроенный порт. в моем случае мне нужно было прослушивать порт 10001 на предмет сообщения, которое отправляет убиквити. С помощью dgrams ('message', ..) я могу получить сообщение, а также IP-адрес убиквити и работать с этим

...