DNS服务器上的域列表?


8

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

我可以访问区域文件。但是,在我的服务器上,有很多区域文件,而手工检查所有这些文件将花费很长时间。是否有列出此信息的命令,或者我必须自己编写脚本?


哦,不!不是脚本!
womble

Answers:


9

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

% rndc dumpdb -zones

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

该文件比原始区域文件更易于解析,因为每一行均以其适用的域名开头。原始区域文件可能是缩写。


2
完美,这正是我所需要的!尽管在我的情况下该文件名为named_dump.db。谢谢:)
chroder

4
在Ubuntu上,它似乎最终出现在/var/cache/bind/named_dump.db
m01

1

从您的var/named/datagrep(或等效目录)通过db。*文件使用适当的正则表达式,例如:

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

请注意,最终的'db。*'会遍历所有db文件。对您拥有区域文件的每个目录重复此操作。


1
这就是find命令的作用!查找/ var / named / data -name'db。*'-print0 | xargs的-0 grep的“...”
克里斯小丑,年轻

-2

对于我在我的域列表中;做dig -t axfr $ i @localhost; 做完了

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.