简介
PowerDNS API 是一个面向 DNS 服务器 PowerDNS 的 RESTful API。使用它,你可以管理你的 DNS 记录,例如添加、删除、修改等。
由于 PowerDNS 的常见用途是提供 DNS 服务,因此很适合作为 DNS 解析器。在优化您的应用程序、提高性能的过程中,PowerDNS API 可以提供很有用的功能。
在这篇文章中,我们将学习如何使用 npm 包 powerdns_api。
环境
- Node.js 12+
- NPM 6+
安装
使用以下命令安装 powerdns_api 包:
npm install powerdns_api
开始使用
引入
在您的脚本中引入 powerdns_api:
const PowerDNSApi = require('powerdns_api');
初始化
初始化 PowerDNSApi 实例:
const api = new PowerDNSApi({ apiUrl: 'http://your-server-url', apiToken: 'your_api_token', apiVersion: 'v1', });
在这里,你需要提供你的 PowerDNS API 服务器 URL, API 访问令牌,和 API 版本信息。
查询域名列表
api.listZones().then(zones => { console.log(zones); // zones result. });
使用该方法可以获取当前 PowerDNS API 服务器上存在的域名列表。
获取域名信息
api.getZone('your-domain.com').then(zone => { console.log(zone); // zone info. });
通过该方法,你可以获取指定域名的信息。
创建域名
api.createZone('your-domain.com').then(() => { console.log('success'); });
您可以通过该方法在 PowerDNS API 服务器上创建一个新的域名。
更新域名信息
api.updateZone('your-domain.com', { soa_edit_api: true }).then(() => { console.log('success'); });
使用此方法,你可以更新指定域名的字段。
删除域名
api.deleteZone('your-domain.com').then(() => { console.log('success'); });
要删除 PowerDNS 上的一个域名,可以通过此方法实现。
获取域名解析记录
api.listRecords('your-domain.com').then(records => { console.log(records); });
使用此方法可以获取指定域名的解析记录列表。
获取域名的一个解析记录
api.getRecord('your-domain.com', 'record-id').then(record => { console.log(record); });
该方法可用于获取指定域名的特定记录。具体格式上报 record-id
参数需要使用 Base 64 进行编码后再提交路径中。
创建一个新的解析记录
api.createRecord('your-domain.com', { name: 'www', type: 'A', content: '192.168.1.102', ttl: 600 }).then(() => { console.log('success'); });
使用此方法,您可以在指定域名上创建一个新的解析记录。
更新域名下的一个解析记录
api.updateRecord('your-domain.com', 'record-id', { ttl: 300 }).then(() => { console.log('success'); });
您可以使用此方法更新某个域名下的特定解析记录的信息。
删除域名下的一个解析记录
api.deleteRecord('your-domain.com', 'record-id').then(() => { console.log('success'); });
使用此方法,您可以删除指定域名下的某个解析记录。
总结
在本文中,我们介绍了 PowerDNS API,并详细介绍了 npm 包 powerdns_api 教程。我们讨论了如何使用此 npm 包在您的应用程序中管理您的 DNS 记录。
希望本文能够帮助你。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d3981e8991b448dafd8