Puedes usar getent
, que viene con glibc
(así que casi seguro que lo tienes en Linux). Esto se resuelve usando gethostbyaddr/gethostbyname2, y también verificará /etc/hosts
/NIS/etc:
getent hosts unix.stackexchange.com | awk '{ print $1 }'
O, como dijo Heinzi a continuación, puede usar dig
con el +short
argumento (consulta servidores DNS directamente, no mira /etc/hosts
/NSS/etc) :
dig +short unix.stackexchange.com
Si dig +short
no está disponible, cualquiera de los siguientes debería funcionar. Todos estos consultan DNS directamente e ignoran otros medios de resolución:
host unix.stackexchange.com | awk '/has address/ { print $4 }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 }'
Si solo desea imprimir una IP, agregue el exit
comando a awk
flujo de trabajo de.
dig +short unix.stackexchange.com | awk '{ print ; exit }'
getent hosts unix.stackexchange.com | awk '{ print $1 ; exit }'
host unix.stackexchange.com | awk '/has address/ { print $4 ; exit }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 ; exit }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 ; exit }'
Con host
del paquete dnsutils:
$ host unix.stackexchange.com
unix.stackexchange.com has address 64.34.119.12
(Corregido nombre del paquete según los comentarios. Como nota, otras distribuciones tienen host
en diferentes paquetes:Debian/Ubuntu bind9-host , openSUSE bind-utils , Frugalware bind .)
Tengo una herramienta en mi máquina que parece hacer el trabajo. La página de manual muestra que parece venir con mysql... Así es como podría usarlo:
resolveip -s unix.stackexchange.com
64.34.119.12
El valor de retorno de esta herramienta es diferente de 0 si el nombre de host no se puede resolver:
resolveip -s unix.stackexchange.coma
resolveip: Unable to find hostid for 'unix.stackexchange.coma': host not found
exit 2
ACTUALIZAR En fedora, viene con mysql-server:
yum provides "*/resolveip"
mysql-server-5.5.10-2.fc15.x86_64 : The MySQL server and related files
Dépôt : fedora
Correspondance depuis :
Nom de fichier : /usr/bin/resolveip
Supongo que crearía una dependencia extraña para su secuencia de comandos...