danog/dns-over-https

为Amp提供的异步DNS-over-HTTPS解析

1.0.0 2023-12-14 20:00 UTC

This package is auto-updated.

Last update: 2024-09-14 21:31:11 UTC


README

License

danog/dns-over-httpsAmp 提供异步和安全的 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);