nadzoring.dns_lookup.compare module¶
DNS server comparison for analysing differences between resolvers.
- class nadzoring.dns_lookup.compare.DifferenceDetail[source]¶
Bases:
TypedDictDetailed information about a detected difference between DNS servers.
- server¶
IP address of the server that returned a different response.
- Type:
str
- type¶
DNS record type where the difference was detected.
- Type:
str
- expected¶
Records expected (from the baseline server).
- Type:
list[str]
- got¶
Actual records received from this server.
- Type:
list[str]
- ttl_difference¶
Absolute TTL difference in seconds, or
Nonewhen TTL data is unavailable for either server.- Type:
int | None
- expected: list[str]¶
- got: list[str]¶
- server: str¶
- ttl_difference: int | None¶
- type: str¶
- class nadzoring.dns_lookup.compare.ServerComparisonResult[source]¶
Bases:
TypedDictResult of comparing DNS responses from multiple servers.
- domain¶
The domain name that was queried.
- Type:
str
- servers¶
Nested dict mapping server IPs to per-record-type results.
- Type:
dict[str, dict[str, nadzoring.dns_lookup.types.DNSResult]]
- differences¶
List of detected differences between servers.
- Type:
list[dict[str, Any]]
- differences: list[dict[str, Any]]¶
- domain: str¶
- nadzoring.dns_lookup.compare._calculate_ttl_difference(ttl1: int | None, ttl2: int | None) int | None[source]¶
Return the absolute difference between two TTL values.
- Parameters:
ttl1 – First TTL in seconds.
ttl2 – Second TTL in seconds.
- Returns:
Absolute difference when both values are provided,
Noneotherwise.
- nadzoring.dns_lookup.compare.compare_dns_servers(domain: str, servers: list[str], record_types: list[str], progress_callback: Callable[[], None] | None = None) ServerComparisonResult[source]¶
Compare DNS responses from multiple servers for the same domain.
Uses the first server in servers as the baseline. Each subsequent server’s records are compared against the baseline; discrepancies are collected in
differences.- Parameters:
domain – Domain name to query (e.g.
"example.com").servers – DNS server IPs to compare. The first entry is the baseline.
record_types – Record types to query on every server.
progress_callback – Called after each successful query. Useful for progress bars.
- Returns:
ServerComparisonResultwithdomain,servers, anddifferenceskeys.
Examples
>>> result = compare_dns_servers( ... "example.com", ... servers=["8.8.8.8", "1.1.1.1"], ... record_types=["A", "MX"], ... ) >>> result["differences"] []