GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menyelesaikan Nama Host Ke Alamat Ip Dalam Skrip Bash?

Apa cara paling ringkas untuk menyelesaikan nama host ke alamat IP dalam skrip Bash? Saya menggunakan Arch Linux.

Jawaban yang Diterima:

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/etc:

getent hosts unix.stackexchange.com | awk '{ print $1 }'

Atau, seperti yang dikatakan Heinzi di bawah, 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 ini akan berfungsi. Semua DNS kueri ini secara langsung dan mengabaikan 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, 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 }'

Linux
  1. Bagaimana cara menjalankan skrip shell di konsol Unix atau terminal Mac?

  2. Bagaimana cara menyorot skrip Bash di Vim?

  3. Bagaimana cara meneruskan parameter ke skrip Bash?

  1. Cara memasukkan file dalam skrip bash shell

  2. Skrip bash Linux untuk mengekstrak alamat IP

  3. Bagaimana cara menjalankan skrip bash berulang kali setiap N detik?

  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Bagaimana cara menjalankan skrip bash?

  3. Bagaimana saya bisa menyelesaikan nama host ke alamat IP dalam skrip Bash?