Os utilitários gostam host
e dig
permitem que você veja o endereço IP correspondente ao nome do host.
Há também o getent
utilitário que pode ser usado para consultar /etc/hosts
ou outros bancos de dados NSS.
Estou procurando por um utilitário padrão conveniente (que está disponível no Debian, por exemplo) que resolve um nome de host, independentemente de onde ele está definido.
Deve ser mais ou menos equivalente a
ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'
getent
?getent
também parece no DNS (eu pensei que só parece/etc/hosts
). Agora que eu tentei, eis o que há de errado comgetent
: poisgoogle.com
, ele retorna um único endereço e esse endereço é IPv6. O que não é útil, pois estou em uma rede IPv4 e meu comando realmente imprime um endereço IPv4.Respostas:
O único comando que eu sei que faz o que você deseja é o resolveip:
http://linux.die.net/man/1/resolveip
No entanto, ele vem apenas com o mysql-server, o que pode não ser o ideal para instalação em qualquer lugar.
fonte
Se o problema é que você não deseja resolver esses nomes usando o ipv6, basta pedir ao getent para usar apenas o ipv4. Isso enumerará todos os endereços ipv4:
fonte
ahostsv6
.getent ahosts google.com
.O problema é que existem várias APIs para resolver nomes de host
gethostbyname
,getaddrinfo
einet_pton
algumas delas podem retornar mais de um endereço e / ou você pode consultar o tipo de endereço que deseja.Se você deseja uma maneira portátil de obter um endereço IPv4, talvez:
fonte
(Esta resposta se aplica apenas se você é root na máquina.)
Eu também costumava me incomodar com isso e depois padronizava a execução do dnsmasq em todas as minhas máquinas. Dnsmasq é um cache DNS leve. Como um benefício colateral, ele serve o conteúdo do
/etc/hosts
over DNS.fonte
gethostip -d name.domain
dosyslinux
pacote no Ubuntu (e provavelmente Debian).-d
gera o formato decimal.fonte
Eu usei meu conhecimento puro de perl e fiz um pequeno script com tratamento de erros:
/ usr / local / bin / gethostip:
Agradecemos a Stéphane Chazelas pela ideia inicial
fonte