有没有办法在不访问区域文件的情况下查询该信息?
例如,我想要与 相关的所有 A、CNAME、MX 和 TXT 记录example.com
。
答案1
根据设计,实现这一点的唯一方法是通过区域传输,最佳实践已经表明,很长一段时间以来,只应允许某些需要具有此类访问权限的特定 IP 地址进行此类传输。
但是,如果域的 DNS 服务器允许,您可以从命令行实用程序中获取输出。具体来说,nslookup
您可以输入ls
来启动一个,并且根据您使用的确切 nslookup,有 LS 选项。也可以使用 Dig dig @ns1.example.com example.com axfr
,。
正如我所提到的,这需要相关名称服务器允许区域传输。这是一种违背最佳实践的配置,因此目前它的实用性可能非常小。
答案2
正如系统管理员所说,只有当您被允许进行区域传输时,这实际上意味着只有当它是您自己的 DNS 服务器时才可以。您很难在 Internet 上找到任何允许这样做的 DNS 服务器。
如果原因是您需要所有 DNS 记录,并且您没有托管自己的 DNS,那么您可以直接致电您的 ISP 并索取完整列表。
如果这不是您的域名,而您只是四处探索,那么您就很不走运了。
答案3
其他人则表示,授权数据库复制(无论是采用“区域传输”机制还是其他复制机制)是获取此信息的唯一方法,因此答案是“否”。 (假设“无法访问区域文件”意味着“我不会采取直接的方式,只需要求拥有数据库的人将其副本发送给我。”)。
事实上,答案是“是的”(前提是,人们只想获取 DNS 数据库架构所包含的信息子集,而不是数据库记录标签、服务器端别名和宏之类的内容)。人们可以走NXT
//记录NSEC
NSEC3
获取子域名列表,然后发送普通查询以获取这些名称的实际资源记录集。