Надежное обнаружение сетевых клиентов (не mDNS?)

У меня есть (на базе Linux) устройства в сети DHCP / IPv4, пользовательский интерфейс которых осуществляется через браузер / мобильное приложение (через локальную сеть). Сложная часть - это обнаружение IP-адреса устройства. Мы пытались использовать mDNS / DNS-SD, но думаем, что сталкиваемся с проблемами , описанными в этом сообщении - определенно, похоже, есть изменения в поведении между Wi-Fi и проводными клиентами в одной сети.

Мы попытались изменить настройку отслеживания IGMP на маршрутизаторе, но это, похоже, не помогло. Мне интересно, нужно ли клиентскому приложению отправлять какой-то запрос на членство в IGMP, чтобы сигнализировать маршрутизатору: «Да, пожалуйста, пересылайте мне все многоадресные пакеты mDNS». (Несмотря на то, что из приведенного выше сообщения похоже, что должно уже происходить.

В конце концов, мне нужен способ для приложения / пользователя надежно обнаруживать IP-адреса клиентов в сети DHCP без , скажем, глядя на таблицу DHCP-клиентов маршрутизатора. Если не mDNS, то какие еще варианты доступны? Единственное, что я могу придумать, это настраиваемый протокол на основе широковещательной передачи UDP, но я бы хотел избежать этого и использовать что-то «стандартное» "если это вообще возможно. Однако мы можем написать код как для устройства, так и для клиента пользователя, что обеспечит большую гибкость.

0
04.04.2017, 06:16
1 ответ

Я использую что-то вроде этого:

nmap -sP 192.168.11.0/24 | egrep 'scan report'

Это выполняет ping-сканирование в подсети 192.168.11.x. IP-адреса будут возвращены для всех хостов, находящихся в подсети, с именами хостов, если они доступны.

Я не совсем уверен, насколько это надежно. Я видел, как хосты выпадали из списка и снова появлялись - действительно ли они становились недоступными в сети в то время ... кто знает, я не подошел и не проверил соединение на других хостах, когда это произошло ... но ICMP должен по крайней мере видеть все в сети, независимо от того, находится оно на другой стороне беспроводного соединения или нет. YMMV.

Честно говоря, у меня на телефоне есть приложение под названием 'fing', которое неплохо с этим справляется (на самом деле, у меня есть приведенная выше команда nmap , заключенная в функцию оболочки под названием fing () , просто потому, что это легко запомнить).

1
28.01.2020, 02:46

Теги

Похожие вопросы