Bagaimana saya dapat menyelesaikan nama host ke alamat IP dalam skrip Bash?

How Can I Resolve Hostname An Ip Address Bash Script



Setiap sistem dalam rangkaian TCP / IP diberikan pengecam unik yang dikenali sebagai alamat IP yang membantu menghubungkannya dengan sistem lain dari rangkaian dan seluruh internet. Semua laman web yang anda akses di internet juga mempunyai alamat IP yang unik. Oleh kerana sukar bagi semua orang untuk mengingat alamat IP laman web ini, sistem DNS hadir yang membantu menerjemahkan alamat IP yang sukar diingat ini menjadi nama yang dapat dibaca oleh manusia. Dengan DNS, anda tidak perlu lagi mengingat alamat IP. Sebaliknya, anda hanya perlu mengingat nama domain dan semua selesai. Sebenarnya, di sandaran, pelayan DNS mengambil nama host dan menyelesaikannya ke alamat IP yang kemudian disambungkan oleh penyemak imbas atau aplikasi.

Dalam artikel ini, kami akan menerangkan cara menyelesaikan nama host / nama domain ke alamat IPv4 dan IPv6 dalam skrip Bash. Namun, sebelum melanjutkan pembuatan skrip, mari kita tinjau beberapa perintah yang dapat digunakan untuk menyelesaikan nama host / nama domain ke alamat IP.







Ping

Ping adalah alat yang paling mudah dan terbina dalam yang terdapat di hampir semua sistem operasi. Ia digunakan untuk mengesahkan jangkauan host dalam rangkaian. Namun, kami juga dapat menggunakannya untuk mencari alamat IP daripada nama host / nama domain mana pun. Gunakan sintaks berikut untuk mencari alamat IP nama host / nama domain yang disasarkan:



$pingtuan rumah sasaran



Nslookup

Nslookup banyak digunakan untuk menyelesaikan nama host ke alamat IP. Untuk menggunakan perintah ini untuk carian IP, gunakan sintaks berikut:





$host-sasaran nslookup

Tuan rumah

Host utiliti baris perintah lain boleh digunakan untuk mencari alamat IP berbanding nama host / nama domain apa pun. Untuk menggunakan perintah ini, gunakan sintaks berikut:



$tuan rumah sasaran-tuan rumah

Anda

Dig adalah satu lagi alat baris perintah yang berguna yang digunakan untuk menanyakan pelbagai rekod berkaitan DNS. Ia dapat digunakan untuk mencari alamat IP terhadap nama host / nama domain apa pun. Gunakan perintah Dig dengan cara berikut untuk mencari alamat IP dengan nama host / nama domain tertentu.

$awaktarget-host + pendek

Skrip Bash untuk menyelesaikan nama host ke alamat IP

Untuk menggunakan skrip bash untuk carian IP, ikuti langkah berikut:

  1. Buat fail bash menggunakan mana-mana penyunting teks. Di sini saya akan menggunakan editor Nano untuk membuat skrip bernama iplookup.sh .$sudo nanoskrip.sh
  1. Salin-tampal baris berikut dalam fail skrip anda. Perhatikan bahawa, di sini dalam skrip ini, saya menentukan pelayan DNS awam Google untuk carian IP. Anda boleh menentukan pelayan DNS lain mengikut persekitaran anda.# Tentukan pelayan DNS
    pelayan dns='8.8.8.8'
    # fungsi untuk mendapatkan alamat IP
    fungsidapatkan_ipaddr{
    alamat IP=''
    # A dan rekod AAA untuk IPv4 dan IPv6, masing-masing
    # $ 1 bermaksud hujah pertama
    sekiranya [ -n '$ 1' ];kemudian
    nama hos='$ {1}'
    sekiranya [ -Dengan 'pertanyaan_jenis' ];kemudian
    jenis pertanyaan='KE'
    menjadi
    # gunakan arahan host untuk operasi pencarian DNS
    tuan rumah-t $ {pertanyaan_jenis} $ {nama tuan rumah} &> /penipu/batal$ {dnsserver}
    sekiranya [ '$?' -eq '0' ];kemudian
    # dapatkan alamat ip
    alamat IP='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF; exit}')'
    yang lain
    jalan keluar 1
    menjadi
    yang lain
    jalan keluar 2
    menjadi
    # paparan ip
    membuang $ ip_address
    }
    nama hos='$ {1}'
    untukpertanyaandalam 'A-IPv4' 'AAAA-IPv6';buat
    jenis pertanyaan='$ (pertanyaan printf $ | potong -d- -f 1)'
    ipversi='$ (pertanyaan printf $ | potong -d- -f 2)'
    alamat='$ (get_ipaddr $ {nama host})'
    sekiranya [ '$?' -eq '0' ];kemudian
    sekiranya [ -n '$ {alamat}' ];kemudian
    membuang 'The$ {ipversion}alamat Nama Hos$ {nama tuan rumah}adalah:$ alamat'
    menjadi
    yang lain
    membuang 'Ralat berlaku'
    menjadi
    selesai
  2. Setelah selesai, gunakan Ctrl + O dan Ctrl + X untuk menyimpan dan keluar fail masing-masing.
  3. Sekarang untuk mencari alamat IP dengan nama host / nama domain yang disasarkan, jalankan skrip menggunakan sintaks berikut:$./script -sh target-host

    Sebagai contoh, untuk menyelesaikan alamat IP google.com, perintahnya adalah:

    $./iplookup.sh google.com

    Hasilnya akan serupa dengan ini:

    Begitu juga, untuk menyelesaikan alamat IP yahoo.com, perintahnya adalah:

    $./iplookup.sh yahoo.com

    Hasilnya akan serupa dengan ini:

    Itu sahaja yang ada! Dalam artikel ini, kami telah belajar untuk menyelesaikan nama host ke alamat IPv4 dan IPv6 menggunakan skrip bash. Kami juga mempelajari beberapa alat baris perintah lain seperti Ping, Nslookup, Host, dan Dig yang dapat digunakan untuk melakukan pencarian IP.