Was ist die bevorzugte Methode zur DNS-Suche (Command Line Domain Name Lookup)?

11

Mit welchem ​​Befehlszeilenbefehl kann ich eine Domänenadresse suchen?

Wenn ich mir die Manpages für nslookup und dig ansehe, sehe ich einen Abschnitt, der besagt, dass diese Dienstprogramme nicht die Mac OS-Methoden zum Suchen von Namen verwenden.

Welchen Befehl sollte ich also ausführen?

Jason
quelle

Antworten:

25

nslookup, hostUnd digganz gute DNS - Abfrage - Tools in OS X, aber sie alle Abfrage DNS direkt und nicht durch interne Auflösung System OS X gehen. Infolgedessen überprüfen sie weder die Datei / etc / hosts noch lösen sie Bonjour / mDNS-Namen auf (die mit .local enden). Die Standardmethode (schnell und schmutzig) zum Testen der Auflösung ist die Verwendung ping, da die Adresse, die Sie ihr geben, über das übliche System aufgelöst wird, bevor Sie versuchen, sie zu pingen. Wenn Sie etwas für diesen Zweck wünschen, verwenden Sie dscacheutilstattdessen:

$ 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
quelle
Ein großes Lob. Ich habe ein Radar eingereicht, dass die Manpages diesbezüglich
Sören Kuklau
Ein Problem bei der Verwendung von dscacheutil für Suchvorgänge besteht darin, dass ein Hostname, der nicht aufgelöst werden kann, nicht mit einem Rückkehrcode ungleich Null beendet wird, wie dies der Host tut.
gurple
Um den Mangel an nützlichen Rückkehrcodes zu überwinden, habe ich ein grundlegendstes Shell-Skript erstellt, das den Standardbefehl 'host' ergänzt. #!/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

Jeder Befehl funktioniert einwandfrei. Nur weil es nicht die Methoden von OS X verwendet, heißt das nicht, dass es nicht funktioniert. Wenn Sie "OS X-Methoden" verwenden möchten, kann ich das Netzwerkdienstprogramm empfehlen?

Geben Sie hier die Bildbeschreibung ein

Dies kann immer noch whois aufrufen und es einfach im Fenster anzeigen.

Everett
quelle
Ich denke, das funktioniert nicht für .localAdressen, oder?
Piotr Findeisen
Nein, dies funktioniert nicht für lokale Adressen. Dies verwendet einen öffentlichen whois-Server, und lokale Adressen werden dort nicht veröffentlicht.
Everett