Domain Detective

API Reference

Class

DnsTtlAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements

Collects TTL values for common DNS records and exposes warnings when values fall outside recommended ranges.

Inheritance

  • Object
  • DnsTtlAnalysis

Remarks

Typical TTL thresholds are based on operational best practices and may be adjusted to suit specific environments.

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by

Accepted by parameters

Constructors

Methods

public async Task Analyze(String domainName, InternalLogger logger) #
Returns: Task

Queries DNS records for TTL values and evaluates them.

Parameters

domainName System.String requiredposition: 0
Domain name to analyze.
logger DomainDetective.InternalLogger requiredposition: 1
Optional logger used for diagnostics.
public async Task AnalyzeUniformityAcrossServers(String domainName, InternalLogger logger, CancellationToken ct = null) #
Returns: Task

Compares TTLs across authoritative name servers for core RRsets (A, AAAA, NS, CNAME).

Parameters

domainName System.String requiredposition: 0
logger DomainDetective.InternalLogger requiredposition: 1
ct System.Threading.CancellationToken = null optionalposition: 2

Properties

public String Subject { get; set; } #

Gets or sets the subject value.

public Boolean DnsSecSigned { get; set; } #

Indicates whether the zone is signed with DNSSEC.

public IReadOnlyList<Int32> ATtls { get; set; } #

Gets TTL values for A records including zero values.

public IReadOnlyList<Int32> AaaaTtls { get; set; } #

Gets TTL values for AAAA records including zero values.

public IReadOnlyList<Int32> MxTtls { get; set; } #

Gets TTL values for MX records including zero values.

public IReadOnlyList<Int32> NsTtls { get; set; } #

Gets TTL values for NS records including zero values.

public Int32 SoaTtl { get; set; } #

Gets the TTL value for the SOA record; zero indicates no TTL or missing record.

public IReadOnlyList<Int32> SpfTxtTtls { get; set; } #

TTL values for SPF TXT at the zone apex.

public IReadOnlyList<Int32> DmarcTxtTtls { get; set; } #

TTL values for _dmarc TXT.

public IReadOnlyList<Int32> MtastsTxtTtls { get; set; } #

TTL values for _mta-sts TXT.

public IReadOnlyList<Int32> TlsRptTxtTtls { get; set; } #

TTL values for _smtp._tls TXT (TLS-RPT).

public Dictionary<String, IReadOnlyList<Int32>> DkimTxtTtls { get; set; } #

TTL values for DKIM selector TXT records, keyed by FQDN (selector._domainkey.domain).

public IReadOnlyList<String> Warnings { get; } #

Collection of warning messages produced during analysis.

public virtual List<Assessment> Assessments { get; } #

Structured assessments captured during TTL analysis.

public IReadOnlyList<RecommendationAdvice> Recommendations { get; } #

Represents the recommendations value.

public DnsConfiguration DnsConfiguration { get; set; } #

Provides DNS query implementation details.

public List<String> DkimSelectors { get; set; } #

Optional list of DKIM selectors discovered earlier (used for TXT TTL checks).

public Int32 MinTtlSpfSeconds { get; set; } #

Minimum TTL for SPF TXT records (seconds).

public Int32 MinTtlDmarcSeconds { get; set; } #

Minimum TTL for DMARC TXT records (seconds).

public Int32 MinTtlDkimSelectorSeconds { get; set; } #

Minimum TTL for DKIM selector TXT records (seconds).

public Int32 MinTtlMtastsSeconds { get; set; } #

Minimum TTL for MTA-STS TXT records (seconds).

public Int32 MinTtlTlsRptSeconds { get; set; } #

Minimum TTL for TLS-RPT TXT records (seconds).

public Int32 UniformityQueryTimeoutMs { get; set; } #

UDP receive timeout (milliseconds) used when querying authoritative servers directly during CancellationToken).

public Int32 UniformityMaxParallelism { get; set; } #

Maximum number of concurrent authoritative-server TTL queries performed by CancellationToken).

public Dictionary<String, Nullable<Int32>> ServerTtlA { get; set; } #

Gets or sets the server ttl a value.

public Dictionary<String, Nullable<Int32>> ServerTtlAaaa { get; set; } #

Gets or sets the server ttl aaaa value.

public Dictionary<String, Nullable<Int32>> ServerTtlNs { get; set; } #

Gets or sets the server ttl ns value.

public Dictionary<String, Nullable<Int32>> ServerTtlCname { get; set; } #

Gets or sets the server ttl cname value.

public Dictionary<String, Nullable<Int32>> ServerTtlTxtSpf { get; set; } #

Gets or sets the server ttl txt spf value.

public Dictionary<String, Nullable<Int32>> ServerTtlTxtDmarc { get; set; } #

Gets or sets the server ttl txt dmarc value.

public Dictionary<String, Nullable<Int32>> ServerTtlTxtMtasts { get; set; } #

Gets or sets the server ttl txt mtasts value.

public Dictionary<String, Nullable<Int32>> ServerTtlTxtTlsRpt { get; set; } #

Gets or sets the server ttl txt tls rpt value.

public Dictionary<String, Dictionary<String, Nullable<Int32>>> ServerTtlTxtPerName { get; set; } #

Per-name TXT TTLs across authoritative servers. Key is the record name (e.g., s1._domainkey.example.com).

public Boolean AUniformAcrossServers { get; set; } #

Gets or sets the a uniform across servers value.

public Boolean AaaaUniformAcrossServers { get; set; } #

Gets or sets the aaaa uniform across servers value.

public Boolean NsUniformAcrossServers { get; set; } #

Gets or sets the ns uniform across servers value.

public Boolean CnameUniformAcrossServers { get; set; } #

Gets or sets the cname uniform across servers value.

public Func<String, DnsRecordType, Task<DnsAnswer[]>> QueryDnsOverride { get; set; } #

Optional override for DNS queries, primarily used for testing.

{{ include "footer" }}