Ответ, кажется, "нет надежного способа сделать это". Не все устройства слушают / отвечают на команды dig, перечисленные в другом ответе, а все остальное для поиска имен mDNS в сети (как avahi-browse
и плохо себя ведущие mdns-scan
) требует многоадресной / широковещательной рассылки и не может использоваться для проверки отдельной машины.
Как вы получаете «Имя службы Bonjour» с одного устройства?
У меня есть два типа устройств, которые я хочу подключить через Ethernet к хосту. Я хочу знать, какой из этих двух типов устройств подключен.
Оба устройства используют Avahi / Bonjour и имеют то, что они называют «Bonjour Service Name», которое содержит полезную информацию, которую я могу использовать, чтобы различать два типа устройств, но сетевые требования означают, что я не могу использовать общий mDNS Browse, потому что он будет работать на вторичный сетевой порт хоста (что не разрешено). Это «Bonjour Service Name» последовательно используются устройства в качестве первой части всех услуг, которые они вещают (например UsefulDeviceName._http._tcp.local
, UsefulDeviceName._ftp._tcp.local
, UsefulDeviceName._telnet._tcp.local
и т.д.).
Каждое устройство этих двух типов также имеет свое собственное уникальное DNS-имя, но это просто [GenericPrefix][MacAddress].local
, что недостаточно для их дифференциации (они принадлежат одному и тому же производителю, поэтому оба типа устройств используют одинаковые блоки MAC).
Каждый инструмент, который я пробовал до сих пор, осуществляет mDNS-трансляцию через сеть и показывает имя Bonjour Service, но не соответствует требованию сети «не использовать все порты». Выполнение запроса DNS, подобного этому, возвращает нормальное имя DNS, а не имя службы Bonjour.
Мы будем знать IP устройства. Существует ли простая команда Linux, которая спросит устройство «каково ваше имя службы Bonjour?» / «Какие имена службы Bonjour у вас есть?» на что можно положиться, чтобы отправлять пакеты только через интерфейс, к которому будут подключены устройства, а не по более широкой сети?
2 ответа на вопрос
dig
должно работать, если вы отправляете тот же запрос, что и различные инструменты «mDNS browser»:
dig _services._dns-sd._udp.local ptr @ ip-адрес -p 5353
(При желании добавить +short
.)
Обратите внимание, что здесь нет « имени службы Bonjour» - каждое устройство может зарегистрировать несколько служб под разными именами.
Похожие вопросы
-
1
Переключить настройки DNS для каждого пользователя Windows?
-
1
Почему я получаю медленную пропускную способность сети, когда у меня плохой DNS-сервер?
-
4
DNS случайно выходит из строя
-
-
1
Где я могу получить полные файлы зон DNS для всех доменов верхнего уровня?
-
5
Беспроводной маршрутизатор, поддерживающий Bonjour между компьютерами, подключенными к проводной и б...
-
3
Что делать, если я не могу пропинговать свой DNS?
-
3
Итальянский DNS: как избежать перезапуска firefox
-
18
Может ли интернет работать без DNS?
-
5
Есть ли способ получить полный файл зоны для домена, не связываясь с его хостом?
-
8
Должен ли я получить все доступные ДВУ для выбранного доменного имени?