ltd-beget / dns-zone-configurator
用于以高级抽象方式程序化解析和编辑DNS区域文件的PHP库。
v1.3.0
2023-05-15 15:34 UTC
Requires
- php: >=8.0
- laminas/laminas-validator: ^2.30.1
- ltd-beget/dns-zone-tokenizer: ~0.0.10
- marc-mabe/php-enum: >=2.2
Requires (Dev)
- phpunit/phpunit: ~8.5.33
- tideways/profiler: ~2.0
- dev-master
- v1.3.0
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- v1.1.3
- 1.1.2
- 1.1.1
- v1.1.0
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-BH-15288
- dev-BH-10394
- dev-fixIncorrectEscaping
- dev-fixDesirializer
- dev-addNAPTR
- dev-flagsFixes
- dev-updateFlags
This package is not auto-updated.
Last update: 2024-09-16 21:53:45 UTC
README
用于以高级抽象方式程序化解析和编辑DNS区域文件的PHP库。
安装
composer require ltd-beget/dns-zone-configurator
用法
<?php use LTDBeget\dns\configurator\Zone; require './vendor/autoload.php'; // get you zone file content $content = file_get_contents(__DIR__."/dns/zones/zone.conf"); // make zone object from plain content $zone = Zone::fromString("voksiv.ru.", $content); // iterate via nodes of zone, where Node is group of resource records with same name foreach ($zone->iterateNodes() as $node) { $node->getName(); $node->getZone(); } // or get concrete node if($zone->isNodeExist("node.name")) { $node = $zone->getNode("node.name"); $node->getName(); $node->getZone(); } // also you can iterate via resource records in zone foreach ($zone->iterateRecords() as $record) { $record->getType(); $record->getTtl(); $record->getNode(); } // or iterate in node if($zone->isNodeExist("node.name")) { $node = $zone->getNode("node.name"); foreach ($node->iterateRecords() as $record) { $record->getType(); $record->getTtl(); $record->getNode(); } } // or iterate only concrete records in zone or node foreach ($zone->iterateA() as $record) { $record->getAddress(); $record->getType(); $record->getTtl(); $record->getNode(); } // all records can be modified foreach ($zone->iterateNs() as $record) { $record->setNsdName("new.nsd.name."); } // or they can be deleted foreach ($zone->iterateMx() as $record) { $record->remove(); } // zone can be validate if(! $zone->validate()) { // and if any errors, you can see them as array $zone->getErrorsStore()->toArray(); // or can iterate via all, and remove invalid records for example foreach ($zone->getErrorsStore()->iterate() as $error) { if($error->isHasRecord()) { $error->getRecord()->remove(); } } } // You can print zone as string, to put in in real zone file $content = (string) $zone; file_put_contents(__DIR__."/dns/zones/zone.conf", $content); // Or you can store it in array format $array_content = $zone->toArray(); // and make zone again from array format Zone::fromArray("voksiv.ru.", $array_content); // also you can make zone programmatically $zone = new Zone("voksiv.ru."); $node = $zone->getNode("@"); $node->getRecordAppender()->appendARecord("127.0.0.1"); $node->getRecordAppender()->appendNsRecord("google.com.");
Dns区域文件仅标记化
如果您只想标记化区域文件,可以使用此 库
开发者
重新生成文档
$ ./vendor/bin/phpdox
运行测试
$ php phpunit.phar --coverage-html coverage
许可证
dns-zone-configurator 在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。