Apa metode pencarian nama domain baris perintah (DNS) yang disukai?

11

Apa perintah baris perintah yang saya gunakan untuk mencari alamat domain?

Ketika melihat halaman manual untuk nslookup dan menggali, saya dapat melihat bagian yang mengatakan bahwa utilitas ini tidak menggunakan metode Mac OS untuk menemukan nama.

Jadi, perintah apa yang harus saya jalankan?

Jason
sumber

Jawaban:

25

nslookup,, hostdan digmerupakan alat kueri DNS yang sangat baik di OS X, tetapi semuanya meminta DNS secara langsung daripada melalui sistem resolusi internal OS X. Akibatnya, mereka tidak memeriksa file / etc / hosts, atau menyelesaikan nama Bonjour / mDNS (yang berakhiran .local). Cara standar (cepat dan kotor) untuk menguji resolusi adalah dengan menggunakan ping, karena itu akan menyelesaikan alamat yang Anda berikan melalui sistem yang biasa sebelum mencoba melakukan ping. Jika Anda menginginkan sesuatu yang dimaksudkan untuk tujuan tersebut, gunakan dscacheutilsebagai berikut:

$ dscacheutil -q host -a name www.apple.com
name: e3191.c.akamaiedge.net
alias: www.apple.com www.isg-apple.com.akadns.net www.apple.com.edgekey.net 
ip_address: 184.24.141.15

$ ping www.apple.com
PING e3191.c.akamaiedge.net (184.24.141.15): 56 data bytes
64 bytes from 184.24.141.15: icmp_seq=0 ttl=57 time=57.258 ms
^C
--- e3191.c.akamaiedge.net ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 57.258/57.258/57.258/0.000 ms
Gordon Davisson
sumber
Pujian. Saya telah mengajukan Radar bahwa halaman manual harus lebih jelas tentang ini: openradar.me/radar?id=5038477976535040
Sören Kuklau
Satu masalah dengan menggunakan dscacheutil untuk pencarian adalah bahwa jika tidak dapat menyelesaikan nama host, ia tidak keluar dengan kode pengembalian yang tidak nol seperti yang dilakukan oleh host.
gurple
Untuk mengatasi kurangnya kode pengembalian yang berguna saya telah membuat skrip shell paling dasar untuk melengkapi perintah 'host' standar. #!/usr/bin/env bash STAT=1 LOOKUPRESULT="$(dscacheutil -q host -a name "$1")" if [ -z "$LOOKUPRESULT" ] ; then exit "$STAT" else echo "$LOOKUPRESULT" STAT=0 exit "$STAT" fi
gurple
4

Salah satu perintah berfungsi dengan baik. Hanya karena tidak menggunakan metode OS X tidak berarti tidak berfungsi. Jika Anda ingin menggunakan "metode OS X" dapatkah saya merekomendasikan Network Utility?

masukkan deskripsi gambar di sini

Ini mungkin masih memanggil whois dan hanya menampilkannya di jendela.

Everett
sumber
Saya kira ini tidak berfungsi untuk .localalamat, bukan?
Piotr Findeisen
Tidak, ini tidak akan berfungsi untuk alamat lokal. Ini menggunakan server whois publik, dan .local address tidak akan diposting di sana.
Everett