rahulmukati/hetzner-dns

所有新的简单Hetzsner DNS库,适用于PHP。

1.0.1 2020-08-15 06:02 UTC

This package is auto-updated.

Last update: 2024-09-21 12:18:42 UTC


README

Hetzner DNS

所有新的简单Hetzsner DNS库,适用于PHP。

特点

  • 轻量级 - 少于5 KB,仅一个文件即可便携

  • 易用 - 非常容易学习和使用,友好的结构

  • 强大 - 支持几乎所有Hetzsner DNS功能

  • 友好 - 与所有PHP框架兼容良好,如Laravel、Codeigniter、Yii、Slim,以及支持单例扩展或composer的框架

  • 免费 - 在MIT许可下,您可以在任何地方使用它,无论您想做什么

要求

PHP 5.6+,建议PHP 7.0+

开始使用

通过composer安装

将其添加到composer.json配置文件中。

$ composer require rahulmukati/hetzner-dns

并更新composer

$ composer update
// If you installed via composer, just use this code to require autoloader on the top of your projects.
require 'vendor/autoload.php';

// Using HetznerDNS namespace
use HetznerDNS\HetznerDNS;

// Initialize
$hdns = new HetznerDNS([
  'api_token' => 'YOURAPITOKENHERE'
]);

创建DNS区域

$hdns->createZone([
  'name' => 'example.com', //Required: String
  'ttl' => '3600' //Optional: Integer
]);

导入DNS区域文件

$body = '$ORIGIN example.com.
$TTL 3600
; SOA Records
@		IN	SOA	ns1.yourdomain.com. dns.yourdomain.com. 2020081403 86400 10800 3600000 3600
; NS Records
@		IN	NS	ns1.yourdomain.com.
@		IN	NS	ns2.yourdomain.com.
; A Records
@		IN	A	192.168.1.1
; CNAME Records
www		IN	CNAME	example.com.';

$hdns->importZoneFile('ZoneIDHere', $body);

导出DNS区域文件

$hdns->exportZoneFile('ZoneIDHere');

获取所有DNS区域

$hdns->getZones([
  'name' => '', //Optional: String
  'page' => '', //Optional: Number >= 1
  'per_page' => '', //Optional: Number <= 100
  'search_name' => '', //Optional: String
]);

获取单个DNS区域

$hdns->getZone('ZoneIDHere');

更新DNS区域

$hdns->updateZone('ZoneIDHere', [
  'name' => 'example.com', //Required: String
  'ttl' => '3600' //Optional: Integer
]);

删除DNS区域

$hdns->deleteZone('ZoneIDHere');

创建DNS记录

$hdns->createRecord([
  'zone_id' => 'ZoneIDHere', //Required: String
  'name' => '@', //Required: String
  'type' => 'CNAME', //Required: String ("A" "AAAA" "NS" "MX" "CNAME" "RP" "TXT" "SOA" "HINFO" "SRV" "DANE" "TLSA" "DS" "CAA")
  'value' => 'example.com', //Required
  'ttl' => '3600' //Optional: Integer
]);

获取所有DNS记录

$hdns->getRecords([
  'zone_id' => 'ZoneIDHere', //Optional: String
  'page' => '1', //Optional: Number
  'per_page' => '10', //Optional: Number
]);

获取单个DNS记录

$hdns->getRecord('RecordIDHere');

更新DNS记录

$hdns->updateRecord('RecordIDHere', [
  'zone_id' => 'ZoneIDHere', //Required: String (ID of zone this record is associated with)
  'name' => '@', //Required: String
  'type' => 'CNAME', //Required: String ("A" "AAAA" "NS" "MX" "CNAME" "RP" "TXT" "SOA" "HINFO" "SRV" "DANE" "TLSA" "DS" "CAA")
  'value' => 'example.com', //Required
  'ttl' => '3600' //Optional: Integer
]);

删除DNS记录

$hdns->deleteRecord('RecordIDHere');