Jos*_*osh 22 networking mac dns macos
我知道如何查询DNS使用工具喜欢dig,host等等。但他们的MacOS手册页状态:
DNS 查询的结果也可能与使用 macOS DNS 路由库的查询不同。
鉴于此,如何在终端中查询 DNS 并获得与本机 macOS 应用程序相同的结果?
在测试 DNS 更改时,我有时会看到 unix 工具和本机 mac 应用程序之间的不同结果。这是我遇到的一个例子:
$ dig +short example.com
192.168.0.100
Run Code Online (Sandbox Code Playgroud)
dig 显示 DNS 查询返回由我们自己的 DNS 服务器处理的本地地址。同时使用 macOS 的“网络实用程序”查找返回缓存结果:
使用 macOS 网络可达性工具,我也得到了一个缓存结果(对于那些不熟悉输出的人,IP 地址显示在最后一行):
$ 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
Run Code Online (Sandbox Code Playgroud)
是否有 macOS 命令行实用程序使用本机 Mac 应用程序使用的相同启发式方法来解析地址?注意:我对清除 DNS 缓存不感兴趣,我对使用脚本中的本机 macOS DNS 解析器感兴趣。我看了手册页mDNSResponder,dns-sd,scutil,networksetup,和dscacheutil其中没有一个似乎DNS查询。
Jos*_*osh 32
似乎正在努力制定我更好地理解问题的问题,以执行更精确的谷歌搜索并找到答案。
在 macOS 上查询 DNS 是通过以下方式实现的:
$ 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
Run Code Online (Sandbox Code Playgroud)
像大多数 macOS shell 命令一样,它不如 unix 等效项那么好,但它为我提供了与本机 mac 应用程序一致的结果。
我从https://random.ac/cess/2018/04/12/macos-dig-vs-dscacheutil-while-using-split-dns-with-viscosity-vpn-client/找到了这个
Leo*_*sov 16
除了对dscacheutilman 文档中未涵盖的用法进行深入挖掘(双关语)外,我还想补充一点,mDNSresponder 服务位于 macOs 名称解析系统的核心,它似乎正在收集所有不同的信息。公共接口下查找信息的来源。
与 mDNS 子系统交互的工具是dns-sd,因此,还有另一种查询 DNS 记录的方法,该方法将尊重所有可用的解析器:
~ \xc2\xbb dns-sd -G v4v6 google.com \nDATE: ---Wed 04 Nov 2020---\n19:05:47.081 ...STARTING...\nTimestamp A/R Flags if Hostname Address TTL\n19:05:47.175 Add 2 0 google.com. 2A00:1450:4001:081D:0000:0000:0000:200E%<0> 377\n19:05:47.255 Add 2 0 google.com. 172.217.22.110 377\nRun Code Online (Sandbox Code Playgroud)\n或者
\n~ \xc2\xbb dns-sd -q google.com \nDATE: ---Wed 04 Nov 2020---\n20:27:50.834 ...STARTING...\nTimestamp A/R Flags if Name Type Class Rdata\n20:27:50.925 Add 2 0 google.com. Addr IN 172.217.22.110\nRun Code Online (Sandbox Code Playgroud)\n甚至
\n~ \xc2\xbb dns-sd -q google.com TXT\nDATE: ---Wed 04 Nov 2020---\n20:30:45.908 ...STARTING...\nTimestamp A/R Flags if Name Type Class Rdata\n20:30:48.831 Add 3 0 google.com. TXT IN 36 bytes: 23 76 3D 73 70 66 31 20 69 6E 63 6C 75 64 65 3A 5F 73 70 66 2E 67 6F 6F 67 6C 65 2E 63 6F 6D 20 7E 61 6C 6C\n20:30:48.831 Add 3 0 google.com. TXT IN 46 bytes: 2D 64 6F 63 75 73 69 67 6E 3D 30 35 39 35 38 34 38 38 2D 34 37 35 32 2D 34 65 66 32 2D 39 35 65 62 2D 61 61 37 62 61 38 61 33 62 64 30 65\n20:30:48.831 Add 3 0 google.com. TXT IN 46 bytes: 2D 64 6F 63 75 73 69 67 6E 3D 31 62 30 61 36 37 35 34 2D 34 39 62 31 2D 34 64 62 35 2D 38 35 34 30 2D 64 32 63 31 32 36 36 34 62 32 38 39\n20:30:48.831 Add 3 0 google.com. TXT IN 60 bytes: 3B 66 61 63 65 62 6F 6F 6B 2D 64 6F 6D 61 69 6E 2D 76 65 72 69 66 69 63 61 74 69 6F 6E 3D 32 32 72 6D 35 35 31 63 75 34 6B 30 61 62 30 62 78 73 77 35 33 36 74 6C 64 73 34 68 39 35\n20:30:48.831 Add 2 0 google.com. TXT IN 65 bytes: 40 67 6C 6F 62 61 6C 73 69 67 6E 2D 73 6D 69 6D 65 2D 64 76 3D 43 44 59 58 2B 58 46 48 55 77 32 77 6D 6C 36 2F 47 62 38 2B 35 39 42 73 48 33 31 4B 7A 55 72 36 63 31 6C 32 42 50 76 71 4B 58 38 3D\nRun Code Online (Sandbox Code Playgroud)\n说实话,这不是最好的脚本命令,因为它以交互式连续监视模式运行,该模式会通知给定地址上的任何更改,直到有人中断它。尽管它允许一些有趣的事情,例如观看仅 VPN 的路径消失,然后在您重新连接时重新出现:
\n~ \xc2\xbb dns-sd -G v4v6 vpn.only.address.com \nDATE: ---Wed 04 Nov 2020---\n19:10:01.672 ...STARTING...\nTimestamp A/R Flags if Hostname Address TTL\n19:10:01.673 Add 40000002 0 vpn.only.address.com. 10.100.100.100 333\n19:10:01.759 Add 2 0 vpn.only.address.com. 0000:0000:0000:0000:0000:0000:0000:0000%<0> 323 No Such Record\n19:10:07.703 Rmv 0 0 vpn.only.address.com. 10.100.100.100 0\n19:10:10.783 Add 2 0 vpn.only.address.com. 0.0.0.0 4502 No Such Record\n19:10:10.905 Add 2 0 vpn.only.address.com. 0000:0000:0000:0000:0000:0000:0000:0000%<0> 4502 No Such Record\n19:10:32.669 Add 3 0 vpn.only.address.com. 10.100.100.100 298\n19:10:32.670 Add 2 0 vpn.only.address.com. 0000:0000:0000:0000:0000:0000:0000:0000%<0> 228 No Such Record\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
23175 次 |
| 最近记录: |