コマンドラインドメイン名検索(DNS)の推奨される方法は何ですか?


11

ドメインアドレスの検索に使用するコマンドラインコマンドは何ですか?

nslookupとdigのmanページを見ると、これらのユーティリティはMac OSの名前検索方法を使用していないというセクションを見ることができます。

それで、どのコマンドを実行する必要がありますか?

回答:


25

nslookuphost、およびdigOS Xでの完璧なDNSクエリーツールがありますが、それらすべてのクエリDNS直接ではなく、OS Xの内部解決システムを通過します。その結果、/ etc / hostsファイルをチェックしたり、Bonjour / mDNS名(.localで終わるもの)を解決したりしません。解決をテストするための標準的な(素早い 'n'汚い)方法はを使用するpingことです。これは、pingを試みる前に通常のシステムを介して指定したアドレスを解決するためです。目的に合ったものが必要な場合は、dscacheutil代わりに次を使用します。

$ 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

称賛。私はレーダーを提出しました、これについてはマンページを明確にする必要があります:openradar.me/radar?id
5038477976535040 –SörenKuklau

ルックアップにdscacheutilを使用する場合の1つの問題は、ホスト名を解決できない場合、hostのようにゼロ以外の戻りコードで終了しないことです。
グルプル

有用なリターンコードの不足を克服するために、標準の「ホスト」コマンドを補完する最も基本的なシェルスクリプトを作成しました。 #!/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
グルプル

4

どちらのコマンドも正常に機能します。OS Xのメソッドを使用していないからといって、それが機能しないわけではありません。「OS Xメソッド」を使用する場合、ネットワークユーティリティをお勧めしますか?

ここに画像の説明を入力してください

これは、まだwhoisを呼び出し、ウィンドウに表示するだけです。


これは.localアドレスでは機能しないと思いますか?
ピョートル・フィンデイセン

いいえ、これは.localアドレスでは機能しません。これはパブリックwhoisサーバーを使用し、.localアドレスはそこに投稿されません。
エベレット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.