使用python解析DNS文本文件

时间:2012-09-25 11:17:52

标签: python parsing dns

我是Python的绝对新手,只在一小时前安装在我的计算机上。

我从一个分拆一个相当复杂的DNS系统的分拆项目开始,并且主要需要在大约20多个BIND服务器上解析各种named.conf和zone文件。

对于初学者,我需要确定不同服务器认为自己掌握的DNS区域。

我的初期是使用Python来读取named.conf文本文件,搜索“type master”。并在文本文件或其他任何地方输出区域的名称。

示例名为.conf的摘录:

zone "92.34.163.in-addr.arpa" in { 
type master; 
file "92.34.163.in-addr.arpa.db"; 
        update-policy {
        grant _nbc_update_channel_key_only_ wildcard * ANY;        };}; 

zone "aam.hal.hydro.com" in { 
type master;   
file "aam.hal.hydro.com.db"; 
        update-policy {
        grant _nbc_update_channel_key_only_ wildcard * ANY;        };}; 

文本文件中的所需输出为:

master 10.10.10.in-addr.arpa    
master kodal.no
master smula.no

任何提示都会受到赞赏!

2 个答案:

答案 0 :(得分:0)

您可以使用bicop来解析此类文件:

from bicop import parse
parse(open("/etc/bind/named.conf"))

答案 1 :(得分:0)

在你的位置,我可能会使用PLY之类的解析器生成器来编写解析器,以从各种DNS配置文件中提取所需的信息。