danog / dns-over-https
为Amp提供的异步DNS-over-HTTPS解析
1.0.0
2023-12-14 20:00 UTC
Requires
- php: >=8.1
- ext-filter: *
- ext-json: *
- amphp/amp: ^3
- amphp/cache: ^2
- amphp/dns: ^2
- amphp/http-client: ^5
- amphp/parser: ^1
- amphp/socket: ^2
- danog/libdns-json: ^0.2
- daverandom/libdns: ^2.0.1
Requires (Dev)
- amphp/php-cs-fixer-config: ^2
- amphp/phpunit-util: ^3
- phpunit/phpunit: ^9
- vimeo/psalm: dev-master
This package is auto-updated.
Last update: 2024-09-14 21:31:11 UTC
README
danog/dns-over-https
为 Amp 提供异步和安全的 DNS-over-HTTPS 域名解析。
支持 RFC 8484 的 POST 和 GET 语法,以及 Google 的专有 JSON DNS 格式。
支持通过 Google DNS 使用自定义头部进行 域名前端。
安装
composer require danog/dns-over-https
示例
<?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);