¿Cuál es el método preferido de búsqueda de nombres de dominio (DNS) en la línea de comandos?

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

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

Entonces, ¿qué comando debo ejecutar?

Respuestas (2)

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

$ 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
Prestigio. Presenté un Radar para que las páginas de manual sean más claras sobre esto: openradar.me/radar?id=5038477976535040
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.
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

Cualquier comando funciona bien. El hecho de que no utilice los métodos de OS X no significa que no funcione. Si desea utilizar "métodos OS X", ¿puedo recomendar Network Utility?

ingrese la descripción de la imagen aquí

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

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