Les utilitaires aiment host
et dig
vous permettent de voir l'adresse IP correspondant au nom d'hôte.
Il existe également l' getent
utilitaire qui peut être utilisé pour interroger /etc/hosts
ou d'autres bases de données NSS.
Je cherche un utilitaire standard pratique (qui est disponible dans Debian, par exemple) qui résout un nom d'hôte indépendamment de l'endroit où il est défini.
Il devrait être plus ou moins équivalent à
ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'
getent
?getent
aussi des regards dans DNS (je pensais que ça ne regarde que dedans/etc/hosts
). Maintenant que je l'ai essayé, voici ce qui ne va pasgetent
: cargoogle.com
, il renvoie une seule adresse, et cette adresse est IPv6. Ce qui n'est pas utile, car je suis sur un réseau IPv4 et ma commande imprimerait en fait une adresse IPv4.Réponses:
La seule commande que je sache qui fait ce que vous voulez est resolip:
http://linux.die.net/man/1/resolveip
Cependant, il n'est fourni qu'avec mysql-server, ce qui n'est peut-être pas idéal à installer partout.
la source
Si le problème est que vous ne voulez pas résoudre ces noms en utilisant ipv6, demandez simplement à getent d'utiliser uniquement ipv4. Cela énumérera toutes les adresses ipv4:
la source
ahostsv6
.getent ahosts google.com
.Le fait est qu'il existe plusieurs API pour résoudre les noms d'hôte comme
gethostbyname
,getaddrinfo
etinet_pton
certaines d'entre elles peuvent renvoyer plus d'une adresse et / ou vous pouvez interroger le type d'adresse que vous souhaitez.Si vous voulez un moyen portable d'obtenir une adresse IPv4, alors peut-être:
la source
(Cette réponse ne s'applique que si vous êtes root sur la machine.)
J'étais aussi agacé par cela, puis j'ai standardisé l'exécution de dnsmasq sur toutes mes machines. Dnsmasq est un cache DNS léger. Comme avantage secondaire, il sert le contenu de
/etc/hosts
plus de DNS.la source
gethostip -d name.domain
dusyslinux
paquet sur Ubuntu (et probablement Debian).-d
affiche le format décimal.la source
J'ai utilisé ma pure connaissance de Perl et fait un petit script avec la gestion des erreurs:
/ usr / local / bin / gethostip:
Merci à Stéphane Chazelas pour l'idée initiale
la source