danog / libdns-native
Encoder/decoder for PHP's dns_get_record raw format based on libdns
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-11-26 06:43:03 UTC
README
Encoder/decoder for the raw format of PHP's dns_get_record function based on libdns: allows usage of the function to fetch all kinds of DNS records, not just the ones supported by the DNS_
constants.
The API consists of a NativeEncoderFactory
that creates NativeEncoder
objects, that can encode libdns Message
objects to a list of parameters that that must be passed to the dns_get_record
function.
The NativeDecoderFactory
creates NativeDecoder
objects, that accept the results of the dns_get_record
function and decode them back to Message
objects.
Installation
composer require danog/libdns-native
Usage
<?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);