¿Cuál es el método preferido de búsqueda de nombre de dominio de línea de comando (DNS)?

11

¿Qué comando de línea de comando utilizo para buscar una dirección de dominio?

Al mirar las páginas de manual para nslookup y dig puedo ver una sección que dice que estas utilidades no utilizan los métodos de Mac OS para encontrar nombres.

Entonces, ¿qué comando debo ejecutar?

Jason
fuente

Respuestas:

25

nslookup, hosty digson herramientas de consulta DNS perfectamente buenas en OS X, pero todas consultan DNS directamente en lugar de pasar por el sistema de resolución interna de OS X. Como resultado, no comprueban el archivo / etc / hosts ni resuelven los nombres Bonjour / mDNS (los que terminan en .local). La forma estándar (rápida y sucia) de probar la resolución es utilizarla ping, ya que resolverá la dirección que le dé a través del sistema habitual antes de intentar hacer ping. Si desea algo destinado a ese propósito, use dscacheutilen su lugar:

$ 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
fuente
Prestigio. He presentado un radar para que las páginas del manual sean más claras al respecto: openradar.me/radar?id=5038477976535040
Sören Kuklau
Un problema con el uso de dscacheutil para búsquedas es que si no puede resolver un nombre de host, no sale con un código de retorno distinto de cero como lo hace el host.
gurple
Para superar la falta de códigos de retorno útiles, he creado un script de shell más básico para complementar el comando estándar '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
gurple
4

Cualquiera de los comandos funciona bien. El hecho de que no esté utilizando los métodos de OS X no significa que no funcione. Si desea utilizar los "métodos OS X", ¿puedo recomendar Network Utility?

ingrese la descripción de la imagen aquí

Esto aún puede llamar a whois y solo mostrarlo en la ventana.

Everett
fuente
Supongo que esto no funciona para las .localdirecciones, ¿verdad?
Piotr Findeisen
No, esto no funcionará para direcciones .local. Esto utiliza un servidor whois público, y las direcciones .local no se publicarán allí.
Everett