8

任何用于解析绑定区域文件的 python 库?基本上可以帮助添加/删除区域和记录。即使有人手动修改区域文件,这也需要工作,因此每次都覆盖区域文件不是解决方案。

4

5 回答 5

7

easyzone是 dnspython 上的一个很好的层

Zoner提供了一个用于编辑区域文件的 Web 界面,并利用了 easyzone。

于 2011-11-04T02:59:19.657 回答
6

我无法将 bicop 用于此类经典区域文件:

    $TTL 86400
@   IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
    2006040800   ; serial
    14400        ; refresh
    1800         ; retry
    604800       ; expire
    86400 )      ; minimum

@

                    IN NS      ns1.first-ns.de.

我会看看dnspython

于 2010-01-27T09:48:52.803 回答
0

请参阅上面关于 bicop 的答案。

顺便说一句,http: //pypi.python.org/pypi上的 Python 包索引是查找 Python 包的好地方。

编辑:以下内容可能仍然对试图弄清楚简单解析的人有所帮助,但 bicop 显然是一个现有的解决方案。

如果有人手动修改了配置,而您不想覆盖它,这是否意味着您希望从现有配置中插入/删除行,而保留所有注释等完整?这确实会阻止解析然后重新输出配置,但这也是一个积极的方面——您不需要完全解析文件来实现您的目标。

要添加记录,您可以尝试一种简单的方法,例如

# define zone_you_care_about and line_you_wish_to_insert first, then:
for line in bindfile.read():
    out.write(line + '\n')
    if ('zone "%s" in' % zone_you_care_about) in line:
        out.write(line_you_wish_to_insert)

类似的代码适用于删除一行:

# define zone_you_care_about and relevant_text_to_remove, then:
for line in bindfile.read():
    if not relevant_text_to_remove in line:
        out.write(line + '\n')

使用像这样的简单代码片段,您可能会得到尽可能多的信息。

于 2008-10-26T00:09:16.983 回答
0

我知道这是旧的,但我能找到的唯一有效的是 iscpy。你可以做一个easy_install。

easy_install iscpy

然后在python中:

import iscpy
iscpy.ParseISCString(open('somefile.conf', 'r').read())

它返回一个字典。

于 2011-07-15T17:05:56.840 回答
-1

您可以尝试bicop“处理 ISC 绑定样式配置文件的 python 库”。

于 2008-10-28T03:19:04.963 回答