Řešení 1:
Toho lze snadno dosáhnout pomocí getent
:
getent hosts 127.0.0.1
getent
bude vyhledávat jakýkoli typ dat nakonfigurovaný v nsswitch.conf
.
Řešení 2:
Jeden nástroj, který by fungoval, je getent
. Takže můžete použít getent hosts www.google.com
nebo getent hosts localhost
. Načte záznamy z databází, jak je uvedeno v konfiguraci přepínače jmenné služby /etc/nsswitch.conf
.
Pro modernější implementace použijte getent ahosts www.google.com
což přinese více výsledků.
Řešení 3:
Použijte getent ahosts
, například:
$ getent ahosts www.google.com | sed -n 's/ *STREAM.*//p'
216.58.210.196
2a00:1450:4006:803::2004
Všechny adresy IPv4 a IPv6 získáte prostřednictvím překladače glibc (tedy pomocí /etc/hosts
za prvé, jak je obvykle nakonfigurováno v /etc/nsswitch.conf
).
Nepoužívejte getent hosts
, protože vám poskytne adresy IPv6 nebo IPv4 (ne obě) a zvolený protokol nemusí být ten, který nefunguje. Obecně jsou preferovány adresy IPv6, ale na některých místech jsou data IPv6 filtrována (nepodporována) směrovači.
Řešení 4:
Můžete použít obal gethostbyname() (zastaralý) jako:
python -c 'import socket;print socket.gethostbyname("www.google.com")'
Nebo obálka getaddrinfo() jako:
python -c 'import socket;print socket.getaddrinfo("www.google.com","http")[0][4][0]'
Všimněte si, že getaddrinfo vrátí všechny instance jako seznam. Poslední část příkazu vybere pouze první n-tici. To může také vrátit adresy IPv6.
Řešení 5:
resolveip
udělá to.
Kupodivu je to součást balíčků mysql-server na RHEL a Ubuntu.