web-dev-qa-db-pt.com

Como consultar o resolvedor de DNS do macOS no Terminal?

Eu sei como consultar o DNS usando ferramentas como Dig, Host, etc. Mas as páginas de manual do macOS afirmam:

Os resultados das consultas DNS também podem diferir das consultas que usam a biblioteca de roteamento DNS do macOS.

Dado isso, como faço para consultar o DNS no terminal e obter os mesmos resultados que os aplicativos nativos do macOS?

Ao testar alterações no DNS, às vezes vejo resultados diferentes entre as ferramentas unix e aplicativos nativos para mac. Aqui está um exemplo do que eu encontrei:

$ Dig +short example.com
192.168.0.100

Dig mostra que a consulta DNS retorna um endereço local tratado por nosso próprio servidor DNS. Enquanto isso, usar a pesquisa 'Network Utility' do macOS retorna um resultado em cache:

Network Utility lookup showing cached IP address

usando a ferramenta de alcançabilidade de rede do macOS, também recebo um resultado em cache (para aqueles que não estão familiarizados com a saída, o endereço IP é revelado na última linha):

$ scutil -W -r example.com
 0: direct
   <SCNetworkReachability 0x7f8a39605ab0 [0x7fffa3c088f0]> {name = example.com}
Reachable

 1: start
   <SCNetworkReachability 0x7f8a39606000 [0x7fffa3c088f0]> {name = example.com}

 2: on runloop
   <SCNetworkReachability 0x7f8a39606000 [0x7fffa3c088f0]> {name = example.com (DNS query active), flags = 0x00000002, if_index = 13}
Reachable


*** 13:08:23.373

 3: callback w/flags=0x00000002 (info="by name")
    <SCNetworkReachability 0x7f8a39606000 [0x7fffa3c088f0]> {name = example.com (complete, 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946), flags = 0x00000002, if_index = 13}
Reachable

Existe um utilitário de linha de comando do macOS para resolver endereços usando a mesma heurística usada pelos aplicativos nativos do mac? Nota: Não estou interessado em limpar o cache DNS, estou interessado em usar o resolvedor DNS nativo do macOS a partir de um script. Examinei as páginas de manual para mDNSResponder, dns-sd, scutil, networksetup e dscacheutil nenhum dos quais parece consultar o DNS.

8
Josh

Parece ser necessário o esforço de formular a pergunta. Entendi melhor o problema para realizar pesquisas mais precisas no Google e encontrei a resposta.

No macOS, a consulta ao DNS é obtida por:

$ dscacheutil -q Host -a name example.com
name: example.com
ipv6_address: 2606:2800:220:1:248:1893:25c8:1946

name: example.com
ip_address: 93.184.216.34

Como a maioria dos comandos do macOS Shell, não é tão bom quanto o equivalente ao unix, mas fornece resultados consistentes com aplicativos nativos para mac.

Eu encontrei isso em https://random.ac/cess/2018/04/12/macos-Dig-vs-dscacheutil- while-using-split-dns-with-viscosity-vpn-client/ =

14
Josh