-2

我是 Python 的绝对和完整的新手,一个小时前才将它安装在我的计算机上。

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

对于初学者,我需要确定不同服务器认为自己是哪些 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

任何提示将不胜感激!

4

2 回答 2

0

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

于 2012-09-25T11:24:50.927 回答
0

你可以bicop用来解析这样的文件:

from bicop import parse
parse(open("/etc/bind/named.conf"))
于 2012-09-25T11:20:30.060 回答