Qual é o método preferido de pesquisa de nome de domínio (DNS) da linha de comando?

11

Qual comando de linha de comando eu uso para procurar um endereço de domínio?

Ao procurar nas páginas de manual nslookup e dig, posso ver uma seção dizendo que esses utilitários não usam os métodos do Mac OS para encontrar nomes.

Então, qual comando devo estar executando?

Jason
fonte

Respostas:

25

nslookup, hostE digsão perfeitamente boas ferramentas de consulta DNS em OS X, mas todos eles DNS consulta diretamente em vez de ir através do sistema de resolução interna do OS X. Como resultado, eles não verificam o arquivo / etc / hosts ou resolvem os nomes do Bonjour / mDNS (aqueles que terminam em .local). A maneira padrão (rápida e suja) de testar a resolução é usar ping, pois ela resolverá o endereço que você fornecer através do sistema usual antes de tentar executar o ping. Se você deseja algo destinado a esse propósito, use 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
Gordon Davisson
fonte
Parabéns. Eu enviei
Sören Kuklau 4/15/15
Um problema ao usar o dscacheutil para pesquisas é que, se ele não pode resolver um nome de host, ele não sai com um código de retorno diferente de zero, como o host.
Gurple
Para superar a falta de códigos de retorno úteis, criei um shell script mais básico para complementar o comando 'host' padrão. #!/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

Qualquer comando funciona bem. Só porque não está usando os métodos do OS X, não significa que não funcione. Se você deseja usar os "métodos do OS X", posso recomendar o Network Utility?

insira a descrição da imagem aqui

Isso ainda pode chamar whois e apenas exibi-lo na janela.

Everett
fonte
Eu acho que isso não funciona para .localendereços, funciona?
Piotr Findeisen
Não, isso não funcionará para endereços locais. Isso usa um servidor whois público e os endereços .local não serão publicados lá.
Everett