Detectar o endereço de outra máquina no link local?

7

Eu tenho duas máquinas conectadas no link local IPv4 através de um cabo CAT6. Existe uma maneira de host1 determinar o endereço IPv4 de host2 ?

Eu estou em um kernel derivado do Debian 3.2.0-34-generic.

    
por Naftuli Kay 04.12.2012 / 17:41

1 resposta

5

Sim, já foi postado nos comentários como uma solução verificada, mas postando como uma resposta de qualquer maneira.

Tente usar o mDNS.

É preciso instalar avahi-daemon na máquina que você deseja resolver (por exemplo, host2 ) e pelo menos algumas bibliotecas cliente Avahi apropriadas para o sistema do cliente (por exemplo, host1 ). Essas bibliotecas cliente geralmente são instaladas por padrão na maioria das distribuições de desktop. Desde que sua distribuição Linux instale automaticamente ganchos para realmente usar o cliente Avahi (mDNS) para pesquisas, você deve então ser capaz de resolver o nome host2.local na máquina cliente.

O conjunto de ferramentas Avahi é uma implementação do mDNS. Resumido, ele fornece serviços de nome por meio de multicast, tanto para a resolução regular do host quanto para a descoberta de serviços. Os usuários do Mac OS X podem reconhecer isso como "Bonjour" e é por isso que, por exemplo, os aplicativos do iTunes se encontram (descoberta de serviço). No entanto, a pesquisa de endereços simples deve funcionar imediatamente.

Avahi é acionado em buscas de nome de host por causa das configurações em /etc/nsswitch.conf (para mim pelo menos no Debian / Ubuntu), assim:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

O sufixo .local é exportado pelo daemon do Avahi e configurável. host2 é apenas o nome do host base da máquina.

    
por 04.12.2012 / 21:03

Tags