WebTools

307 Useful Tools & Utilities to make life easier.

DNS Propagation Check

Verify the worldwide propagation of your DNS records across multiple global name servers and locations.

Understanding the DNS Propagation Check Tool

When modifying domain name system (DNS) records—such as migrating a website to a new host or configuring email authentication—the changes do not take effect instantly across the globe. This phenomenon is known as DNS propagation. The DNS Propagation Check tool provides a real-time, geographical lens into how a domain's records are resolving across various international servers. By querying multiple tier-one resolvers, administrators can determine whether their recent DNS modifications have successfully populated worldwide.

Core Mechanisms & Technical Execution

Behind the scenes, this tool operates on an iterative streaming architecture powered by Laravel Livewire. Instead of firing off all DNS requests simultaneously (which could lead to PHP execution timeouts or rate limiting), the tool queries each resolver sequentially. After verifying a specific resolver, it dispatches a next-check browser event to trigger the subsequent query, providing a smooth, real-time feedback loop on the frontend.

The queries themselves are executed using DNS over HTTPS (DoH). The application interfaces with the DoH endpoints via standard HTTP GET requests formatted for JSON data (application/dns-json). A hard 15-second timeout is applied to each external API call to ensure that a slow or unresponsive geographic node does not halt the entire diagnostic process.

The tool queries a hardcoded array of 9 prominent global resolvers to ensure comprehensive coverage:

  • Google Public DNS (Global)
  • Cloudflare DNS (Global)
  • NextDNS (Global)
  • Cloudflare Security & Family (Global filters)
  • Cisco Umbrella (Global)
  • Alibaba DNS (China)
  • DNSPod / Tencent (China / Asia)
  • DNS.SB (Germany / Europe)

Supported Record Types & Validation

Before any outbound requests are made, the provided domain undergoes strict validation using PHP's native FILTER_VALIDATE_DOMAIN with the FILTER_FLAG_HOSTNAME flag to guarantee syntax integrity.

Users can inspect specific aspects of their DNS configuration by selecting one of the supported query types: A (IPv4 address), AAAA (IPv6 address), MX (Mail Exchangers), CNAME (Canonical Name), TXT (Text records, commonly used for SPF/DKIM), NS (Name Servers), and SOA (Start of Authority).

Intelligent Fallbacks and Data Transformation

DNS APIs can occasionally fail, either due to network drops or strict server-side rate limits. To guarantee that the user receives as much diagnostic data as possible, the tool implements an intelligent local fallback mechanism. If a standard HTTP request to a DoH endpoint throws an exception, or if the primary Google Public DNS lookup fails, the tool attempts a localized query using PHP's native dns_get_record() function relative to the host server's network.

When data is successfully fetched via the JSON endpoints, the tool parses the Answer array. Because raw DNS query results often append a trailing dot representing the DNS root zone (e.g., example.com.), the application explicitly strips this trailing dot utilizing PHP's rtrim() function, presenting a cleaner, more readable output.

Worked Example

Scenario: Verifying a New Email Server

Inputs:

  • Domain: example.com
  • Record Type: MX

Execution Flow:

  1. The system validates example.com against the hostname filter.
  2. The frontend enters a loading state (isChecking = true).
  3. The backend reaches out to the first resolver: https://dns.google/resolve?name=example.com&type=MX.
  4. Google's API returns a JSON response: {"Status": 0, "Answer": [{"data": "10 mail.example.com."}]}.
  5. The backend strips the trailing dot to yield 10 mail.example.com and pushes this result to the UI.
  6. A next-check event fires, prompting the tool to interrogate Cloudflare's DoH endpoint (https://cloudflare-dns.com/dns-query) using the ct=application/dns-json parameter.
  7. This process cascades through all 9 endpoints, revealing exactly which geographic regions have acknowledged the new MX record.

Frequently Asked Questions

The tool uses a sequential streaming approach handled by Livewire. It queries each DoH endpoint individually and updates the table row by row. This prevents PHP timeout errors, avoids server rate-limiting, and gives you instant visual feedback on the progress rather than forcing you to wait for all 9 international nodes to respond before seeing any data.

Every outbound HTTP request to a DoH endpoint has a strict 15-second timeout. If a resolver is down, the request will timeout, and the tool will mark that specific node as "Service unavailable" (displaying an error icon in the UI). Additionally, the application contains a built-in fallback: if it encounters a total API failure, it will attempt to use PHP's local dns_get_record() function to salvage the lookup.

In absolute DNS formatting, a trailing dot represents the root of the DNS hierarchy. While DoH APIs often return records with this trailing dot intact (e.g., ns1.nameserver.com.), this tool intentionally executes an rtrim() operation to strip the trailing dot before rendering the data. This provides a cleaner, more standardized string that is easier to read and copy.

A domain can successfully exist without containing every specific type of DNS record. For example, if you query a domain for an MX record, but that domain is not configured to receive email, the DNS API will return a Status 0 (Success) but with an empty or non-existent Answer array. The tool intercepts this scenario and accurately reports it as a warning with "No records found" instead of an error.

Contact

Missing something?

Feel free to request missing tools or give some feedback using our contact form.

Contact Us