De JSON-API van Google Public DNS via een HTTP-proxy bevragen
Haal DNS-records op via een geproxiede HTTPS-aanvraag en houd de resolver-API gescheiden van de eigen hostnaamopzoeking van de proxy.
Een HTTP-proxy kan een aanvraag naar een DNS-over-HTTPS-dienst dragen. Voor de JSON-interface van Google Public DNS kan een expliciete query er zo uitzien:
curl --fail --proxy http://proxy.example.net:8080 --noproxy "" \
--get --data-urlencode "name=example.net" \
--data-urlencode "type=A" \
https://dns.google/resolve
De proxy draagt de HTTPS-verbinding naar dns.google. De HTTP-proxylijst is één plek om een kandidaat voor deze openbare query te kiezen, waar toegang via openbare proxies is toegestaan. De resolver van Google beantwoordt de parameter name. Dit is geen verzoek aan de proxy om zijn eigen DNS-cache terug te geven, en ook geen wijziging van de DNS-configuratie die andere toepassingen gebruiken.
Lees de Status in de JSON en de teruggegeven records, niet alleen de HTTP-status. Een succesvol afgeleverd HTTP-antwoord kan een DNS-fout beschrijven. Wijzig type naar het benodigde record, bijvoorbeeld AAAA of MX; één A-query is geen volledige inventaris van elk recordtype.
Het JSON-formaat van dit eindpunt is een gedocumenteerde Google-API. Standaard DoH-clients in wire-formaat gebruiken in plaats daarvan DNS-berichten en application/dns-message. Een gewone nslookup-aanroep krijgt geen van beide HTTP-interfaces louter omdat HTTPS_PROXY is ingesteld.