Use dig(1)
. Para pesquisas normais, use:
dig full.hostname.xxx
e para pesquisas inversas, use:
dig -x 127.0.0.1
Verifique também a página de manual para opções muito mais legais.
qual é a maneira mais fácil de obter o nome do host canônico de um host na linha de comando do linux?
Se for importante, meu shell é bash.
CLARIFICATION: Eu quero o nome de host canônico de outro host, seja por ip ou por nome de host não canônico. Não é o nome do host canônico do host local.
Use dig(1)
. Para pesquisas normais, use:
dig full.hostname.xxx
e para pesquisas inversas, use:
dig -x 127.0.0.1
Verifique também a página de manual para opções muito mais legais.
O nome do nó do host remoto não tem relação necessária com nenhum dos nomes de rede. Você terá que fazer login e usar o comando hostname
.
Se você estiver procurando o FQDN (nome de domínio totalmente qualificado) de um endereço de rede, poderá usar as ferramentas de consulta DNS como dig
ou nslookup
, conforme descrito por @firm e @Richard Holloway.
Você também pode usar o comando host . Como neste exemplo
host xxx.xxx.xxx.xyz
O resultado será algo como
xyz.xxx.xxx.xxx.in-addr.arpa domain name pointer name.domain.com
Para ser claro, hostname
apenas retornará o nome abreviado. Use o parâmetro -f
; hostname -f
para obter o nome totalmente qualificado.
Para encontrar o fqdn de um host remoto com IP xxx.xxx.xxx.xxx você pode usar
nslookup xxx.xxx.xxx.xxx
e veja a resposta contém
name = host.domain.net
Não há "pesquisa inversa" para nomes canônicos. Ou seja: dado um registro A, não há como obter uma listagem dos registros CNAME que apontam para ele.
Aqui está o comando:
hostname
Você pode pesquisar o endereço IP pelo nome e procurar o nome desse endereço IP. Para fazer isso em um comando:
$ dig -x 'dig +short www.google.com' | grep PTR.
100.212.58.216.in-addr.arpa. 86309 IN PTR lhr35s06-in-f4.1e100.net.
100.212.58.216.in-addr.arpa. 86309 IN PTR lhr35s06-in-f100.1e100.net.
Isso não funciona em todos os sites.