danog / libdns-native
基于 libdns 的 PHP 的 dns_get_record 原始格式的编码/解码器
0.1
2019-07-15 12:59 UTC
Requires
- php: >=7.0
- daverandom/libdns: ^2.0.1
Requires (Dev)
- amphp/php-cs-fixer-config: dev-master
- phpunit/phpunit: ^6
This package is auto-updated.
Last update: 2024-08-26 06:14:49 UTC
README
基于 PHP 的 dns_get_record 函数 的原始格式编码/解码器,基于 libdns:允许使用该函数来获取所有类型的 DNS 记录,而不仅仅是 DNS_
常量支持的记录。
API 由一个 NativeEncoderFactory
组成,它创建 NativeEncoder
对象,可以将 libdns 的 Message
对象编码为传递给 dns_get_record
函数的参数列表。
NativeDecoderFactory
创建 NativeDecoder
对象,接受 dns_get_record
函数的结果并将它们解码回 Message
对象。
安装
composer require danog/libdns-native
用法
<?php require 'vendor/autoload.php'; use danog\LibDNSNative\NativeEncoderFactory; use danog\LibDNSNative\NativeDecoderFactory; use LibDNS\Records\QuestionFactory; use LibDNS\Records\ResourceQTypes; use LibDNS\Messages\MessageFactory; use LibDNS\Messages\MessageTypes; $question = (new QuestionFactory)->create(ResourceQTypes::DNSKEY); $question->setName('daniil.it'); $message = (new MessageFactory)->create(MessageTypes::QUERY); $records = $message->getQuestionRecords(); $records->add($question); $encoder = (new NativeEncoderFactory)->create(); $question = $encoder->encode($message); $result = dns_get_record(...$question); $decoder = (new NativeDecoderFactory)->create(); $result = $decoder->decode($result, ...$question);