Powerdns web API客户端和接口

python-powerdns的Python项目详细描述


PythonSupportLicense

python powerdns—powerdns web api python客户端和接口

联系人:denis‘jawa’pompiliodpompilio@vente-privee.com

来源:https://github.com/vente-privee/python-powerdns

关于

此包提供直观且易于使用的python客户端和界面 对于powerdns web api。

安装

python setup.py install

pip install python-powerdns

助手

pdns区域创建者

usage: pdns-create-zone [-h] -A API -K APIKEY -z ZONE -o ORIGIN -c ZONE -d DNS
                        [-t TIMERS]

PowerDNS zone creator

optional arguments:
  -h, --help            show this help message and exit
  -A API, --api API     PowerDNS api (eg. https://api.domain.tld/api/v1
  -K APIKEY, --key APIKEY
                        PowerDNS api key
  -z ZONE, --zone ZONE  Zone name (canonical)
  -o ORIGIN, --origin ORIGIN
                        Zone origin (for SOA)
  -c ZONE, --contact ZONE
                        Zone contact (for SOA)
  -d DNS, --dns DNS     Zone nameservers comma separated
  -t TIMERS, --timers TIMERS
                        Zone timers (eg. '28800 7200 604800 86400')
./bin/pdns-create-zone -A "https://api.domain.tld/api/v1" -K "xxxxxxxxx"\
                       -z "myzone.domain.tld."\
                       -o "ns01.domain.tld." -c "admin.domain.tld."\
                       -d "nsd01.domain.tld.,nsd02.domain.tld."
powerdns.interface INFO: listing available PowerDNS servers
powerdns.interface INFO: getting available servers from API
powerdns.client INFO: request: GET https://api.domain.tld/api/v1/servers
powerdns.client INFO: request response code: 200
powerdns.interface INFO: 1 server(s) listed
powerdns.interface INFO: creation of zone: myzone.domain.tld.
powerdns.client INFO: request: POST https://api.domain.tld/api/v1/servers/localhost/zones
powerdns.client INFO: request response code: 201
powerdns.interface INFO: zone myzone.domain.tld. successfully created

示例

基本初始化:

importpowerdnsPDNS_API="https://my.pdns.api.domain.tld/api/v1"PDNS_KEY="mysupersecretbase64key"api_client=powerdns.PDNSApiClient(api_endpoint=PDNS_API,api_key=PDNS_KEY)api=powerdns.PDNSEndpoint(api_client)

创建和删除区域:

fromdatetimeimportdate# Creating new zone on first PowerDNS serverserial=date.today().strftime("%Y%m%d00")soa="ns0.domain.tld. admin.domain.tld. %s 28800 7200 604800 86400"%serialsoa_r=powerdns.RRSet(name='test.python-powerdns.domain.tld.',rtype="SOA",records=[(soa,False)],ttl=86400)zone=api.servers[0].create_zone(name="test.python-powerdns.domain.tld.",kind="Native",rrsets=[soa_r],nameservers=["ns1.domain.tld.","ns2.domain.tld."])# Getting new zone infoprint(zone)print(zone.details)# Deleting newly created zoneapi.servers[0].delete_zone(zone.name)

创建和删除DNS记录:

zone=api.server[0].get_zone("test.python-powerdns.domain.tld.")zone.create_records([powerdns.RRSet('a','A',[('1.1.1.1',False)]),powerdns.RRSet('b','A',['1.1.1.2','1.1.1.3']),powerdns.RRSet('c','A',[('1.1.1.4',False)]),powerdns.RRSet('d','CNAME',['a'])])zone.delete_record([powerdns.RRSet('a','A',[('1.1.1.1',False)]),powerdns.RRSet('d','CNAME',['a'])])

区域备份和恢复:

# Backup every zone of every PowerDNS serverforserverinapi.servers:backup_dir="backups/%s"%server.idforzoneinserver.zones:zone.backup(backup_dir)# Restore a single zone on first PowerDNS serverzone_file="backups/pdns-server-01/my.domain.tld.json"api.servers[0].restore_zone(zone_file)

许可证

麻省理工学院许可证(见许可证文件)

其他

    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝

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

推荐PyPI第三方库


热门话题
java Android使用两个后台服务错误   解压缩HTTPInputStream时,java GZIPInputStream过早关闭   javax和javax的区别是什么。网ssl。密钥库和服务器。ssl。为SpringBoot应用程序指定密钥库时的密钥库属性   java生成两个JPanel,而我只需要一个   java深度链接从play store安装应用程序时获取数据   java 安卓应用程序在退出时未正确释放蓝牙   java正确使用setCellValueFactory   java开放JdbcTemplate连接处于只读模式?   使用Spring MVC创建服务时发生java错误   JavaFX获取安装在计算机中的特定应用程序的版本   SecureRandom的安全问题:PRNG在java 1.5中不一致   windows我可以创建一个独立的。带Inno设置的Java应用程序的exe安装程序?   如何使用JavaServlet下载csv文件?   java从生成的缓冲图像中添加图像作为jasper中的数据记录?   java日期和时间解析