Как получить имя службы Bonjour с одного устройства?

у меня есть два типа устройств, которые я хочу обрабатывать через Ethernet на хост. Я хочу знать, какой из этих двух типов устройств подключен.

оба устройства используют Avahi / Bonjour и имеют то, что они называют "именем службы Bonjour", которое содержит полезную информацию, которую я могу использовать для различения двух типов устройств, но требования к сети означают, что я не могу использовать общий просмотр mDNS, потому что он выйдет на вторичный сетевой порт хоста (что не разрешено). Это " Bonjour Имя службы " последовательно используется устройствами в качестве первой части всех транслируемых ими служб (например,UsefulDeviceName._http._tcp.local,UsefulDeviceName._ftp._tcp.local,UsefulDeviceName._telnet._tcp.local и т. д.).

каждое устройство двух типов также имеет свое уникальное DNS-имя, но это просто [GenericPrefix][MacAddress].local, что недостаточно, чтобы отличить их (они от одного производителя, и поэтому оба типа устройств используют одни и те же блоки MAC).

каждый инструмент, который я пробовал до сих пор делает mDNS вещания по сети и показывает службу Bonjour имя, но не соответствует сетевому требованию "не использовать все порты". Выполнение DNS-запроса типа этой возвращает обычное DNS-имя, а не имя службы Bonjour.

мы будем знать IP устройства. Есть ли простая команда Linux, которая спросит устройство "каково ваше имя службы Bonjour?"/"какие имена служб Bonjour у вас есть?"на это можно положиться, чтобы отправлять пакеты только через интерфейс, к которому будут подключены устройства, а не шире сеть?

4
задан Community
06.01.2023 0:20 Количество просмотров материала 3102
Распечатать страницу

2 ответа

ответ, по-видимому, "нет надежного способа сделать это". Не все устройства слушают / отвечают на команды dig, перечисленные в другом ответе, и все остальное, чтобы найти имена mDNS в сети (например,avahi-browse и плохо mdns-scan) требует multicasting/широковещания и не может быть использовано для того чтобы зондировать индивидуальную машину.

1
отвечен IBBoard 2023-01-07 08:08

dig должно работать, если вы отправляете тот же запрос, что и различные инструменты "mDNS browser":

dig _services._dns-sd._udp.local ptr @ip-address -p 5353

(при необходимости добавьте +short.)

обратите внимание, что нет "на Bonjour Service name " - каждое устройство может зарегистрировать несколько сервисов под разными именами.

0
отвечен grawity 2023-01-07 10:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх