Estou transmitindo o serviço mDNS do meu módulo WiFi. Preciso descobrir isso no meu PC Linux e obter seu endereço IP.
- Usei o comando mdns-scan e estou recebendo o nome do serviço listado.
- Usei avahi-browse --all e estou listando o nome do meu serviço.
- Mas como obtenho o endereço IP desse serviço? Essa é a minha exigência.
- Nos aplicativos Android consigo obter detalhes completos dos serviços. Como faço para obtê-lo no Linux?
- Eu tentei if config -a e nmap também.
Responder1
Usei avahi-browse --all e estou listando o nome do meu serviço.
Usaravahi-resolve --name
para mapear o nome do host para seus endereços IP.
Alternativamente, para tornar *.local
os nomes de host mDNS resolvíveis em todo o sistema, você pode usarnss-mdns(usando back-end Avahi) ou nss-resolve (usando back-end resolvido pelo systemd). Isso permitirá que qualquer aplicativo use nomes mDNS como se fossem DNS normais.
Nos aplicativos Android consigo obter detalhes completos dos serviços. Como faço para obtê-lo no Linux?
Em aplicativos Android, você usa a API fornecida pelo sistema operacional. Da mesma forma, no Linux, você deve usar a API adequada fornecida pelo sistema operacional – oucliente libavahioulibavahi-glib–nãoferramentas CLI aleatórias coladas. Todas as ferramentas listadas são para uso manual por administradores de sistemas, não para scripts.
O DNS-SD armazena as informações adicionais do serviço em registros TXT. Conforme mostrado nos exemplos da API, a função "resolver callback" receberá automaticamente um array de registros TXT como parâmetro sem precisar fazer nada extra.
Responder2
Não tenho certeza se você precisa disso para um script de automação; nesse caso, essa pode não ser a melhor solução, mas um ping
comando simples também fornecerá o endereço IP.
Veja este exemplo:
$ ping lightpizero.local
PING lightpizero.local (192.168.0.104) 56(84) bytes of data.
O endereço neste caso é claramente192.168.0.104