有没有Python库可以解析Bind区域文件?
有没有什么Python库可以用来解析Bind区域文件?
简单来说,就是想找个工具,能帮助我们添加或删除区域和记录。
这个工具需要能够处理手动修改过的区域文件,所以每次都覆盖区域文件的方法行不通。
4 个回答
0
请查看上面的关于bicop的回答。
顺便提一下,Python包索引网站 http://pypi.python.org/pypi 是寻找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')
你可能只需要用这样简单的代码片段就能达到你的目的。
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。