¿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.
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 bytes64 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
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?
Esto aún puede llamar a whois y solo mostrarlo en la ventana.
#!/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
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?
Esto aún puede llamar a whois y solo mostrarlo en la ventana.
fuente
.local
direcciones, ¿verdad?