Solusi yang diberikan sejauh ini sebagian besar berfungsi dalam kasus yang lebih sederhana: nama host langsung diselesaikan ke satu alamat IPv4. Ini mungkin satu-satunya kasus di mana Anda perlu menyelesaikan nama host, tetapi jika tidak, di bawah ini adalah diskusi tentang beberapa kasus yang mungkin perlu Anda tangani.
Chris Down dan Heinzi secara singkat membahas kasus di mana nama host diputuskan untuk lebih dari satu alamat IP. Dalam hal ini (dan yang lainnya di bawah), skrip dasar dengan asumsi bahwa nama host secara langsung memutuskan ke satu alamat IP mungkin rusak. Di bawah ini, contoh dengan nama host yang diselesaikan lebih dari satu alamat IP:
$ host www.l.google.com
www.l.google.com has address 209.85.148.147
www.l.google.com has address 209.85.148.103
www.l.google.com has address 209.85.148.99
www.l.google.com has address 209.85.148.106
www.l.google.com has address 209.85.148.105
www.l.google.com has address 209.85.148.104
Tapi apa itu www.l.google.com
? Di sinilah kasus alias perlu diperkenalkan. Mari kita periksa contoh di bawah ini:
$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.39.103
www.l.google.com has address 74.125.39.147
www.l.google.com has address 74.125.39.105
www.l.google.com has address 74.125.39.99
www.l.google.com has address 74.125.39.106
www.l.google.com has address 74.125.39.104
Jadi www.google.com
tidak langsung menyelesaikan ke alamat IP, tetapi ke alias yang itu sendiri memutuskan untuk beberapa alamat IP. Untuk informasi lebih lanjut tentang alias, periksa di sini . Tentu saja, kasus di mana alias memiliki alamat IP tunggal dimungkinkan, seperti yang ditunjukkan di bawah ini:
$ host g.www.ms.akadns.net
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 207.46.19.190
Tapi bisakah alias dirantai? Jawabannya iya:
$ host www.microsoft.com
www.microsoft.com is an alias for toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net is an alias for g.www.ms.akadns.net.
g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net has address 207.46.19.254
$ host www.google.fr
www.google.fr is an alias for www.google.com.
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.39.147
www.l.google.com has address 74.125.39.103
www.l.google.com has address 74.125.39.99
www.l.google.com has address 74.125.39.106
www.l.google.com has address 74.125.39.104
www.l.google.com has address 74.125.39.105
Saya tidak menemukan contoh di mana nama host diselesaikan ke alias yang tidak menyelesaikan ke alamat IP, tapi saya pikir kasusnya mungkin terjadi.
Lebih dari beberapa alamat IP dan alias, apakah ada beberapa kasus khusus lainnya ... bagaimana dengan IPv6? Kamu bisa mencoba:
$ host ipv6.google.com
ipv6.google.com is an alias for ipv6.l.google.com.
ipv6.l.google.com has IPv6 address 2a00:1450:8007::68
Di mana nama host ipv6.google.com
adalah nama host khusus IPv6. Bagaimana dengan tumpukan ganda nama host:
$ host www.facebook.com
www.facebook.com has address 66.220.153.15
www.facebook.com has IPv6 address 2620:0:1c08:4000:face:b00c::
Lagi tentang IPv6, jika host Anda hanya IPv4, Anda masih dapat menyelesaikan alamat IPv6 (diuji pada IPv4 hanya WinXP dan dengan ipv6.google.com, Anda dapat mencobanya di Linux). Dalam hal ini, resolusi berhasil, tetapi ping gagal dengan pesan kesalahan host yang tidak dikenal . Ini mungkin merupakan kasus di mana skrip Anda gagal.
Saya harap komentar itu bermanfaat.
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
jawabannya ada di suatu tempat di dekat bagian bawah. Ini adalah yang paling sederhana, tidak memerlukan paket tambahan dan lebih mudah untuk diuraikan dari skrip Bash juga.