DNS 服务器上的域列表?

DNS 服务器上的域列表?

有没有办法获取我的 BIND DNS 服务器上的 A 和 CNAME 记录的完整列表?

我可以访问区域文件。但我的服务器上有很多区域文件,手动查看所有文件会花费太长时间。是否有命令可以列出这些信息,还是我必须自己编写脚本?

答案1

grep不要在所有区域文件上使用,而是使用:

% rndc dumpdb -zones

这将创建一个名为的服务器权威数据转储named_dump.db,可能位于/var/named/data(或类似)。

此文件比原始区域文件更容易解析,因为每行都以其适用的域名开头。原始区域文件可能已缩写。

答案2

从您的var/named/data(或同等目录)使用适当的正则表达式通过 db.* 文件进行 grep,例如:

grep '\(.  *A   *[0-9][0-9]*\)\|\(..*CNAME..*\)' db.*

请注意,最后的 'db.*` 将所有 db 文件合并在一起。对每个包含区域文件的目录重复此操作。

答案3

对于我的域名列表中的 i;执行 dig -t axfr $i @localhost;完成

必须首先允许从本地主机进行区域传输。

相关内容