我可以使用 dig 同时查找 NS 和 A

Posted

技术标签:

【中文标题】我可以使用 dig 同时查找 NS 和 A【英文标题】:Can I lookup NS and A at the same time using dig 【发布时间】:2011-05-24 04:28:19 【问题描述】:

是否可以使用单个 dig 命令查找域的 A(IP 地址)和 NS(名称服务器)?

我可以使用 dig google.com A +short 或 dig google.com NS +short 但肯定可以只使用一个命令吗?如果没有,是否有类似的命令可以做到这一点?

谢谢

【问题讨论】:

【参考方案1】:
dig +short ns google.com a google.com

【讨论】:

谢谢马丁。根据 Alnitak 回来的内容,这可能是我采取的路线。 嗯,它没有必须,我只是想尽可能简化流程。例如,如果 dig 可以在向 DNS 服务器发出一个请求后返回这两个请求,那么这比两个单独的请求要快。 但该 dig 命令仍然执行两个单独的请求...尝试不使用 +short 选项,您会看到它们。 Alnitak 是对的。只是 dig 在单个命令行中支持多个查询。您看到它必须是两个查询,因为您必须重复主机名(第二个可能与第一个不同)。 是的,我知道这个命令向 DNS 服务器发送了两个请求。虽然它确实满足了只是一个 dig 命令的要求,但在多次分叉时保持运行进程停止。【参考方案2】:

不,它不能可靠地完成,至少不能在单个 DNS 查询中完成。 Martin 的回答满足“单一命令”标准,但会导致对 DNS 服务器的两次查询。

ANY 选项(而不是NSA),但它不是获取两条记录的可靠方法。

如果你问谷歌的权威服务器,你确实应该把所有东西都拿回来,但我怀疑你不会提前知道他们的服务器是什么,否则你不会问这个问题。

如果您询问本地递归 服务器,那么您可能 会取回两条记录,但前提是它们都在缓存中。递归服务器不需要获取每条记录并将它们返回以进行ANY 查询,它们可以只发回它们已经拥有的内容。

【讨论】:

Altnitak,当我使用(例如): dig @208.67.222.222 example.org ANY 它似乎总是按照我的意愿返回 NS 和 A。你是说在某些情况下这可能不会发生吗?谢谢 没错,是的。如果 OpenDNS 的缓存中没有它,它将不会被返回。我刚刚为我知道的域尝试了这个 - 第一个 ANY 查询只返回了 NS。然后我发送了一个明确的A 查询。随后的ANY 查询现在返回两者(至少在它们的 TTL 过期之前)。 该死,真可惜。感谢您花时间解释它。知道是有用的。我想最好的解决方案确实是两个将它作为对 DNS 服务器的两个单独的查询。我会先检查域名服务器,如果没有分配,我就不会费心检查 IP。 那么有什么方法可以制作一个包含许多查询的 DNS 查询数据包?如果不是,为什么一个数据包中的 DNS 头有一个字段来计算该数据包中的查询次数,这个数字会一直是 1 吗? @weefwefwqg3 不,仍然没有办法做到这一点,尽管 IETF DNSOP 工作组至少有 5 个不同的提案,这些提案与将多个问题和/或答案整合到单个 DNS 往返中有关 (@987654321 @)。至于为什么头是这样的,我下次见到保罗·莫卡佩特里斯就得问他了……

以上是关于我可以使用 dig 同时查找 NS 和 A的主要内容,如果未能解决你的问题,请参考以下文章

dns劫持分析

python 当其他工具(dig,host,nslookup)不可用时,使用python进行快速dns查找

使用dig查询dns解析

dig linux下的使用

dig查询dns解析

DNS信息收集工具dig使用