CLI utility to check propagation of DNS records using multiple DNS servers simultaneously.
pip install dnspropagation
# or
pipx install dnspropagation
# or run in docker
docker run berkas1/dnspropagation a google.com
Specify the record type and domain name:
dnspropagation a google.com
# docker
docker run berkas1/dnspropagation a google.com
Queries six default public nameservers and prints a formatted table. Use --json or --yaml for machine-readable output.
Supply one or more servers with --server:
dnspropagation --server 1.1.1.1 --server 8.8.8.8 a google.comOr provide a YAML-formatted server list via --custom_list using a local file path or an http(s):// URL:
dnspropagation --custom_list custom-list.yaml a google.com
dnspropagation --custom_list https://example.com/my-servers.yaml a google.comSee custom-list.yaml for the expected format. Remote lists are fetched over HTTPS (recommended) or HTTP with a 10-second timeout and a 1 MB size limit. Every entry must contain a valid ipv4 field.
Use --expected to assert a specific value. Matching values are highlighted green; non-matching values are highlighted red. The flag can be used multiple times.
--tags and --owner filter which servers from the default list or a custom list are queried. Both flags accept multiple values and are combined with AND logic.
--ttl adds a TTL column to the output table. Works with --json, --yaml, and --html output modes as well.
--html writes a self-contained HTML page to STDOUT.
--no-color- disable ANSI color codes in terminal output.--timeout <seconds>- per-query timeout in seconds (float). Defaults to dnspython's built-in timeout.--random <N>- randomly select N servers from the active server list before querying.--show-default- print the built-in default DNS server list to STDOUT (add--yamlfor YAML format).--file <path>- run multiple record/domain checks defined in a YAML file and output results as JSON.--version- print the current version and exit.

