Die JSON-API von Google Public DNS über einen HTTP-Proxy abfragen
Rufen Sie DNS-Einträge über eine geproxte HTTPS-Anfrage ab und halten Sie dabei die Resolver-API vom eigenen Hostnamen-Lookup des Proxys getrennt.
Ein HTTP-Proxy kann eine Anfrage an einen DNS-over-HTTPS-Dienst übertragen. Für die JSON-Schnittstelle von Google Public DNS kann eine explizite Abfrage so aussehen:
curl --fail --proxy http://proxy.example.net:8080 --noproxy "" \
--get --data-urlencode "name=example.net" \
--data-urlencode "type=A" \
https://dns.google/resolve
Der Proxy überträgt die HTTPS-Verbindung zu dns.google. Die HTTP-Proxy-Liste ist eine Stelle, um einen Kandidaten für diese öffentliche Abfrage auszuwählen, wo Zugriff über öffentliche Proxys erlaubt ist. Der Resolver von Google beantwortet den Parameter name. Dies ist keine Aufforderung an den Proxy, seinen eigenen DNS-Cache zurückzugeben, und auch keine Änderung der DNS-Konfiguration, die andere Anwendungen verwenden.
Lesen Sie den Status im JSON und die zurückgegebenen Einträge, nicht nur den HTTP-Status. Eine erfolgreich zugestellte HTTP-Antwort kann einen DNS-Fehler beschreiben. Ändern Sie type auf den benötigten Eintrag, etwa AAAA oder MX; eine A-Abfrage ist keine vollständige Bestandsaufnahme aller Eintragstypen.
Das JSON-Format dieses Endpunkts ist eine dokumentierte Google-API. Standard-DoH-Clients im Wire-Format verwenden stattdessen DNS-Nachrichten und application/dns-message. Ein gewöhnlicher nslookup-Aufruf erhält nicht allein deshalb eine der beiden HTTP-Schnittstellen, weil HTTPS_PROXY gesetzt ist.