Команда Linux для обнаружения службы mDNS и получения ее IP-адреса

Команда Linux для обнаружения службы mDNS и получения ее IP-адреса

Я транслирую службу mDNS с моего модуля WiFi. Мне нужно обнаружить его на моем ПК Linux и получить его IP-адрес.

  1. Я использовал команду mdns-scan и получил список имен служб.
  2. Я использовал avahi-browse --all и получил список имен своих служб.
  3. Но как мне получить IP-адрес этого сервиса? Это мое требование.
  4. В приложениях Android я могу получить полную информацию о сервисах. Как мне получить ее в Linux?
  5. Я также попробовал config -a и nmap.

решение1

Я использовал avahi-browse --all и получил список имен своих служб.

Использоватьavahi-resolve --nameдля сопоставления имени хоста с его IP-адресами.

В качестве альтернативы, чтобы сделать *.localимена хостов mDNS разрешимыми в рамках всей системы, вы можете использоватьnss-mdns(используя бэкэнд Avahi) или nss-resolve (используя бэкэнд systemd-resolved). Это позволит любому приложению использовать имена mDNS, как если бы они были обычными DNS.

В приложениях Android я могу получить полную информацию о сервисах. Как мне получить ее в Linux?

В приложениях Android вы используете API, предоставляемые ОС. Аналогично, в Linux вы должны использовать правильный API, предоставляемый ОС – либоlibavahi-клиентилилибавахи-глибнетслучайные инструменты CLI, склеенные вместе. Все перечисленные вами инструменты предназначены для ручного использования системными администраторами, а не для написания скриптов.

DNS-SD хранит дополнительную информацию сервиса в записях TXT. Как показано в примерах API, функция "resolve callback" автоматически получит массив записей TXT в качестве параметра без необходимости делать что-либо дополнительно.

решение2

Я не уверен, нужно ли это вам для скрипта автоматизации, в таком случае это может быть не лучшим решением, но простая pingкоманда также даст вам IP-адрес.

Посмотрите этот пример:

$ ping lightpizero.local
PING lightpizero.local (192.168.0.104) 56(84) bytes of data.

Адрес в данном случае явно192.168.0.104

Связанный контент