Soluzione 1:
Questo si ottiene facilmente con getent
:
getent hosts 127.0.0.1
getent
eseguirà ricerche per qualsiasi tipo di dati configurato in nsswitch.conf
.
Soluzione 2:
Uno strumento che potrebbe funzionare è getent
. Quindi potresti usare getent hosts www.google.com
o getent hosts localhost
. Recupererà le voci dai database come specificato nella configurazione di Name Service Switch /etc/nsswitch.conf
.
Per implementazioni più moderne usa getent ahosts www.google.com
che otterrà più risultati.
Soluzione 3:
Usa getent ahosts
, ad esempio:
$ getent ahosts www.google.com | sed -n 's/ *STREAM.*//p'
216.58.210.196
2a00:1450:4006:803::2004
Otterrai tutti gli indirizzi IPv4 e IPv6, tramite il resolver glibc (usando quindi /etc/hosts
prima, come di solito configurato in /etc/nsswitch.conf
).
Non utilizzare getent hosts
, poiché ti fornirà gli indirizzi IPv6 o IPv4 (non entrambi) e il protocollo scelto potrebbe non essere uno che non funziona. In effetti, gli indirizzi IPv6 sono generalmente preferiti, ma in alcuni punti i dati IPv6 vengono filtrati (non supportati) dai router.
Soluzione 4:
Puoi usare un wrapper gethostbyname() (deprecato) come:
python -c 'import socket;print socket.gethostbyname("www.google.com")'
O un wrapper getaddrinfo() come:
python -c 'import socket;print socket.getaddrinfo("www.google.com","http")[0][4][0]'
Si noti che getaddrinfo restituirà tutte le istanze come un elenco. L'ultima parte del comando seleziona solo la prima tupla. Questo può anche restituire indirizzi IPv6.
Soluzione 5:
resolveip
lo farà.
Stranamente, fa parte dei pacchetti mysql-server su RHEL e Ubuntu.