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:
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.
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/ =