A chi è rivolto
Usa la suite per troubleshooting, controlli di migrazione, ricerca sull’infrastruttura e revisione di sicurezza.
Prova un prodotto, un risultato, un percorso di endpoint o un argomento API.
Confronta le risposte dei resolver DNS ricorsivi pubblici di Cloudflare e Google. Sono due provider DoH con anycast globale, non sonde geografiche né nameserver autorevoli.
Confronta le risposte dei resolver DNS ricorsivi pubblici di Cloudflare e Google. Sono due provider DoH con anycast globale, non sonde geografiche né nameserver autorevoli.
Usa la suite per troubleshooting, controlli di migrazione, ricerca sull’infrastruttura e revisione di sicurezza.
Sceglilo per confrontare le risposte dei resolver ricorsivi pubblici configurati. Non è una prova geografica della propagazione globale.
Confronta le risposte dei resolver DNS ricorsivi pubblici di Cloudflare e Google. Sono due provider DoH con anycast globale, non sonde geografiche né nameserver autorevoli.
Esamina le operazioni, gli input, gli output, le modalità di esecuzione e i limiti di risposta supportati prima dell’integrazione.
0-2 Autenticazione richiesta. Consulta il riferimento dell’operazione per il costo esatto e gli eventuali prezzi per elemento.
Usa operazioni documentate per raccogliere, valutare, arricchire, verificare, confrontare, proteggere o monitorare prove pubbliche.
| Parametro | Tipo | obbligatorio |
|---|---|---|
| domain | string | obbligatorio |
| type |
string
Valori consentiti
AAAAACNAMEMXTXTNSSOA
Predefinito
A
|
facoltativo |
| expected | string | facoltativo |
| Campo | Tipo |
|---|---|
domain |
string |
record_type |
string |
expected_value |
string | null |
measurement_scope |
string |
percentage_basis |
string |
propagation_percentage |
number |
fully_propagated |
boolean |
consistent |
boolean |
unique_values[] |
string[] |
results[] |
object[] |
results[] |
object |
results[].server |
object |
results[].server.name |
string |
results[].server.ip |
string |
results[].server.provider |
string |
results[].server.location |
string |
results[].server.country |
string |
results[].server.scope |
string |
results[].server.doh_endpoint |
string |
results[].server.documentation_url |
string |
results[].server.format |
string |
results[].success |
boolean |
results[].records[] |
string[] |
results[].ttl |
integer | null |
results[].response_time_ms |
integer |
results[].error |
string | null |
checked_at |
string |
total_duration_ms |
integer |
summary |
object |
summary.total_servers |
integer |
summary.successful |
integer |
summary.failed |
integer |
summary.matching_expected |
integer |
propagation_summary |
object |
propagation_summary.measurement_scope |
string |
propagation_summary.percentage_basis |
string |
propagation_summary.resolver_count |
integer |
propagation_summary.successful_count |
integer |
propagation_summary.failed_count |
integer |
propagation_summary.propagation_percentage |
number |
propagation_summary.fully_propagated |
boolean |
propagation_summary.consistent |
boolean |
propagation_summary.unique_value_count |
integer |
propagation_summary.matching_expected_count |
integer |
propagation_summary.expected_value_present |
boolean | null |
propagation_summary.countries_checked |
integer |
propagation_summary.providers_checked |
integer |
propagation_summary.locations_checked |
integer |
propagation_summary.slowest_resolver |
string | null |
propagation_summary.slowest_response_ms |
integer | null |
propagation_summary.fastest_response_ms |
integer | null |
propagation_summary.disagreement_count |
integer |
propagation_summary.confidence |
string |
meta |
object |
meta.served_by |
string |
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1"const response = await fetch("https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/dns/propagation?domain=example.com&type=A&expected=192.0.2.1")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body)){
"domain": "example.com",
"record_type": "A",
"expected_value": "192.0.2.10",
"measurement_scope": "configured_recursive_resolvers",
"percentage_basis": "expected_value_match",
"propagation_percentage": 100,
"fully_propagated": true,
"consistent": true,
"unique_values": [
"192.0.2.10"
],
"results": [
{
"server": {
"name": "Cloudflare 1.1.1.1",
"ip": "1.1.1.1",
"location": "Global anycast",
"country": "GLOBAL",
"provider": "Cloudflare",
"scope": "global-anycast",
"doh_endpoint": "https://cloudflare-dns.com/dns-query",
"documentation_url": "https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https/make-api-requests/dns-json/",
"format": "dns-json"
},
"success": true,
"records": [
"192.0.2.10"
],
"ttl": 300,
"response_time_ms": 38
},
{
"server": {
"name": "Google Public DNS",
"ip": "8.8.8.8",
"location": "Global anycast",
"country": "GLOBAL",
"provider": "Google",
"scope": "global-anycast",
"doh_endpoint": "https://dns.google/resolve",
"documentation_url": "https://developers.google.com/speed/public-dns/docs/doh/json",
"format": "dns-json"
},
"success": true,
"records": [
"192.0.2.10"
],
"ttl": 300,
"response_time_ms": 52
}
],
"checked_at": "2026-10-09T10:15:30.000Z",
"total_duration_ms": 61,
"summary": {
"total_servers": 2,
"successful": 2,
"failed": 0,
"matching_expected": 2
},
"propagation_summary": {
"measurement_scope": "configured_recursive_resolvers",
"percentage_basis": "expected_value_match",
"resolver_count": 2,
"successful_count": 2,
"failed_count": 0,
"propagation_percentage": 100,
"fully_propagated": true,
"consistent": true,
"unique_value_count": 1,
"matching_expected_count": 2,
"expected_value_present": true,
"countries_checked": 1,
"providers_checked": 2,
"locations_checked": 1,
"slowest_resolver": "Google Public DNS",
"slowest_response_ms": 52,
"fastest_response_ms": 38,
"disagreement_count": 0,
"confidence": "high"
}
}
200 OK400 Richiesta non valida401 Non autorizzato402 Pagamento richiesto429 Troppe richiesteUsa il riferimento API di Confronto tra resolver DNS per esaminare parametri, campi di risposta, esempi, codici di stato e modalità operative supportate.
I risultati sconosciuti o parziali indicano che le prove richieste non hanno potuto essere determinate completamente. Conserva stato del risultato, confidenza, aggiornamento e limiti nelle decisioni successive.
Il prezzo dipende dall’operazione e dalla modalità di esecuzione. Consulta il riferimento dell’endpoint per il costo attuale in crediti, il requisito di autenticazione e le regole per elemento.
Usato da persone di queste aziende