Idealmente, o seu administrador de sistema teria configurado a rede com um servidor DNS e esse servidor DNS seria dinamicamente atualizado com nomes de host do DHCP.
Você pode tentar usar as mensagens de nome de domínio ICMP para colhê-las, mas não acho que é amplamente implementado.
Outro método antigo é o servidor NIS. Mas estes não são mais tão comuns. Você pode tentar ypcat hosts
e ver se isso lhe devolve alguma coisa.
Outro é o zeroconf, onde os hosts que o suportam transmitem seu nome e você pode executar um serviço que os armazena em cache (o pacote Avahi faz isso. Se você o tiver configurado, então um ping <hostname>.local
pode funcionar para você, mas nem todo nó também suportará isso, você também pode tentar consultar com as ferramentas avahi: avahi-resolve-host-name <hostname>.local
e escrever um script que atualize o / etc / hosts para você se o resolvedor normal não funcionar.
Portanto, não há outro lugar "mágico" para obter nomes de host. Alguém terá que definir esse mapeamento ou torná-lo dinamicamente detectável. Se o seu administrador de sistema não ou não, então você tem que fazê-lo. E o único lugar que você pode fazer para sua máquina local é o arquivo / etc / hosts. Então, se nenhum dos métodos acima funcionar, então você está preso a isso. Desculpe.