Pandabot/vendor/danog/dns-over-https
2024-11-29 16:19:39 +01:00
..
.github/workflows Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
docs Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
lib Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
.gitmodules Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
.php-cs-fixer.dist.php Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
composer.json Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
CONTRIBUTING.md Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
LICENSE Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
Makefile Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
phpunit.xml.dist Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
psalm-baseline.xml Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
psalm.xml Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00
README.md Reupload due to DCMA takedowns. btfo DMCA clowns. Liberty Internet. 2024-11-29 16:19:39 +01:00

dns

License

danog/dns-over-https provides asynchronous and secure DNS-over-HTTPS name resolution for Amp.
Supports RFC 8484 POST and GET syntaxes as well as Google's proprietary JSON DNS format.
Supports passing custom headers for domain fronting with google DNS.

Installation

composer require danog/dns-over-https

Example

<?php

require __DIR__ . '/examples/_bootstrap.php';

use Amp\DoH;
use Amp\Dns;
use Amp\Dns\DnsRecord;

use function Amp\Future\awaitFirst;

// Set default resolver to DNS-over-HTTPS resolver
$DohConfig = new DoH\DoHConfig([new DoH\DoHNameserver('https://mozilla.cloudflare-dns.com/dns-query')]); // Defaults to DoH\DoHNameserverType::RFC8484_POST
Dns\dnsResolver(new DoH\Rfc8484StubDoHResolver($DohConfig));

$githubIpv4 = Dns\resolve("github.com", DnsRecord::A);
pretty_print_records("github.com", $githubIpv4);

$googleIpv4 = \Amp\async(fn () => Amp\Dns\resolve("google.com", DnsRecord::A));
$googleIpv6 = \Amp\async(fn () => Amp\Dns\resolve("google.com", DnsRecord::AAAA));

$firstGoogleResult = awaitFirst([$googleIpv4, $googleIpv6]);
pretty_print_records("google.com", $firstGoogleResult);

$combinedGoogleResult = Amp\Dns\resolve("google.com");
pretty_print_records("google.com", $combinedGoogleResult);

$googleMx = Amp\Dns\query("google.com", DnsRecord::MX);
pretty_print_records("google.com", $googleMx);
$firstGoogleResult = awaitFirst([$googleIpv4, $googleIpv6]);
pretty_print_records("google.com", $firstGoogleResult);

$combinedGoogleResult = Amp\Dns\resolve("google.com");
pretty_print_records("google.com", $combinedGoogleResult);

$googleMx = Amp\Dns\query("google.com", DnsRecord::MX);
pretty_print_records("google.com", $googleMx);