Anda dapat menggunakan getent
, yang disertakan dengan glibc
(jadi Anda hampir pasti memilikinya di Linux). Ini diselesaikan menggunakan gethostbyaddr/gethostbyname2, dan juga akan memeriksa /etc/hosts
/NIS/dll:
getent hosts unix.stackexchange.com | awk '{ print $1 }'
Atau, seperti yang dikatakan Heinzi di bawah ini, Anda dapat menggunakan dig
dengan +short
argumen (meminta server DNS secara langsung, tidak melihat /etc/hosts
/NSS/dll) :
dig +short unix.stackexchange.com
Jika dig +short
tidak tersedia, salah satu dari berikut harus bekerja. Semua permintaan DNS ini secara langsung dan abaikan cara penyelesaian lainnya:
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 }'
Jika Anda hanya ingin mencetak satu IP, maka tambahkan exit
perintah ke awk
alur kerja.
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 }'
Dengan host
dari paket dnsutils:
$ host unix.stackexchange.com
unix.stackexchange.com has address 64.34.119.12
(Diperbaiki nama paket sesuai dengan komentar. Sebagai catatan distribusi lain memiliki host
dalam paket yang berbeda:Debian/Ubuntu bind9-host , openSUSE bind-utils , Frugalware bind .)
Saya memiliki alat di mesin saya yang sepertinya melakukan pekerjaan itu. Halaman manual menunjukkan sepertinya datang dengan mysql... Inilah cara Anda dapat menggunakannya:
resolveip -s unix.stackexchange.com
64.34.119.12
Nilai pengembalian alat ini berbeda dari 0 jika nama host tidak dapat diselesaikan :
resolveip -s unix.stackexchange.coma
resolveip: Unable to find hostid for 'unix.stackexchange.coma': host not found
exit 2
PEMBARUAN Di fedora, ia hadir dengan 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
Saya kira itu akan membuat ketergantungan yang aneh untuk skrip Anda...