Solución 1:
Esto se logra fácilmente con getent
:
getent hosts 127.0.0.1
getent
hará búsquedas para cualquier tipo de datos configurados en nsswitch.conf
.
Solución 2:
Una herramienta que funcionaría es getent
. Así que podrías usar getent hosts www.google.com
o getent hosts localhost
. Recuperará las entradas de las bases de datos como se especifica en la configuración del cambio de servicio de nombres /etc/nsswitch.conf
.
Para implementaciones más modernas use getent ahosts www.google.com
que obtendrá múltiples resultados.
Solución 3:
Usa getent ahosts
, por ejemplo:
$ getent ahosts www.google.com | sed -n 's/ *STREAM.*//p'
216.58.210.196
2a00:1450:4006:803::2004
Obtendrá todas las direcciones IPv4 e IPv6, a través de la resolución de glibc (por lo tanto, usando /etc/hosts
primero, como suele configurarse en /etc/nsswitch.conf
).
No use getent hosts
, ya que le dará direcciones IPv6 o IPv4 (no ambas), y el protocolo elegido puede no ser uno que no funcione. De hecho, generalmente se prefieren las direcciones IPv6, pero en algunos lugares, los enrutadores filtran (no admiten) los datos IPv6.
Solución 4:
Puede usar un envoltorio gethostbyname() (obsoleto) como:
python -c 'import socket;print socket.gethostbyname("www.google.com")'
O un envoltorio getaddrinfo() como:
python -c 'import socket;print socket.getaddrinfo("www.google.com","http")[0][4][0]'
Tenga en cuenta que getaddrinfo devolverá todas las instancias como una lista. La última parte del comando selecciona solo la primera tupla. Esto también puede devolver direcciones IPv6.
Solución 5:
resolveip
hará esto.
Curiosamente, es parte de los paquetes del servidor mysql en RHEL y Ubuntu.