简易区域-DNS区域抽象模块

dnszone的Python项目详细描述


概述

dnszone是一个包,用于管理 区域文件,包括soa记录。这个模块位于 dnspython包并提供更高级别的抽象 对于公共区域文件操作用例。

http://pypi.python.org/pypi/dnszonehttps://github.come/greg-hellings/dnszone

主要功能:

  • dnspython之上的高级抽象。
  • 将分区文件加载到对象中。
  • 修改/添加/删除区域/记录对象。
  • 保存回区域文件。
  • 自动更新序列号(如有必要)。

要求

构建/测试/安装

生成:

$ python setup.py build

测试:

$ python setup.py test

安装:

$ python setup.py install

或使用设置工具:

$ easy_install dnszone

示例

dnszone:

>>> from dnszone import dnszone
>>> z = dnszone.zone_from_file('example.com', '/var/namedb/example.com')
>>> z.domain
'example.com.'
>>> z.root.soa.serial
2007012902L
>>> z.root.records('NS').items
['ns1.example.com.', 'ns2.example.com.']
>>> z.root.records('MX').items
[(10, 'mail.example.com.'), (20, 'mail2.example.com.')]
>>> z.names['foo.example.com.'].records('A').items
['10.0.0.1']

>>> ns = z.root.records('NS')
>>> ns.add('ns3.example.com.')
>>> ns.items
['ns1.example.com.', 'ns2.example.com.', 'ns3.example.com.']
>>> ns.delete('ns2.example.com')
>>> ns.items
['ns1.example.com.', 'ns3.example.com.']

>>> z.save(autoserial=True)

区域检查:

>>> from dnszone.zone_check import ZoneCheck
>>> c = ZoneCheck()
>>> c.isValid('example.com', '/var/named/zones/example.com')
True
>>> c.isValid('foo.com', '/var/named/zones/example.com')
False
>>> c.error
'Bad syntax'
>>>
>>> c = ZoneCheck(checkzone='/usr/sbin/named-checkzone')
>>> c.isValid('example.com', '/var/named/zones/example.com')
True
>>>

分区加载:

>>> from dnszone.zone_reload import ZoneReload
>>> r = ZoneReload()
>>> r.reload('example.com')
zone reload up-to-date
>>> r.reload('foo.com')
rndc: 'reload' failed: not found
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "dnszone/zone_reload.py", line 51, in reload
    raise ZoneReloadError("rndc failed with return code %d" % r)
dnszone.zone_reload.ZoneReloadError: rndc failed with return code 1
>>>
>>> r = ZoneReload(rndc='/usr/sbin/rndc')
>>> r.reload('example.com')
zone reload up-to-date
>>>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java计数字符串中的符号数   如何将(Android)应用程序上下文传递给Java类?   arraylist中的java查找索引始终位于1   java如何在Grpc中通过MethodDescriptor的InputStream调用服务器?   java Netbeans、Glassfish部署问题   java在安卓上拖放一个按钮。。帮助   java Hibernate不从映射表填充数据   数组用户定义的文件读取函数导致NullPointerException Java   java组织。冬眠ErrorClassException:对象[id=null]不属于指定的子类   java中迭代破坏二叉树的算法   openssl如何通过java确保使用哪个私钥创建服务器证书   伏地魔项目的java对象映射   java这是JSlider中的一个bug吗?   java Spring究竟如何使用JDK代理?   java跨JVM分发订阅者   java Mockito void方法如何检查私有变量?   java如何在安卓 Studio中启用httpclient?   java软件设计原则:将您的收藏与处理对象分开?   java Exe包装的JavaFX应用程序(使用Launch4J)不会打开其他阶段   读取Java中可能被其他进程修改的文件