Domain Detective

API Reference

Class

DnsTraceAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements
Modifiers sealed

Performs an authoritative-style DNS trace by iteratively querying root servers and following referrals. Captures a hop-by-hop log to support explainability and debugging.

Inheritance

  • Object
  • DnsTraceAnalysis

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 AnalyzeAsync(String domain, InternalLogger logger = null, CancellationToken cancellationToken = null) #
Returns: Task

Performs a DNS trace for the specified domain.

Parameters

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

Properties

public String Subject { get; set; } #

The domain being analyzed.

public DnsConfiguration DnsConfiguration { get; set; } #

DNS configuration (used for user-agent and shared defaults).

public Func<String, String, DnsRecordType, CancellationToken, Task<DnsResponse>> QueryOverride { get; set; } #

Optional override for querying a specific DNS server (IP) for (name,type). Used by tests and offline callers.

public DnsRecordType[] RecordTypesToTrace { get; set; } #

Record types to trace (default: A and AAAA).

public Boolean IncludeIpv6RootServers { get; set; } #

When true, includes IPv6 root servers in the initial hop set.

public Int32 MaxDepth { get; set; } #

Maximum referral depth before stopping.

public Int32 MaxServersPerDepth { get; set; } #

Maximum servers tried per depth (prevents huge referral fan-out).

public Int32 MaxTotalSteps { get; set; } #

Maximum total steps captured across all traced record types.

public Int32 MaxCnameHops { get; set; } #

Maximum CNAME hops to chase when an authoritative response returns a CNAME without the requested type.

public Int32 TimeoutMilliseconds { get; set; } #

Timeout per server query (milliseconds) for UDP/TCP fallback queries.

public Boolean TraceSucceeded { get; set; } #

True when tracing executed (even if a record type returned no final answer).

public String FailureReason { get; set; } #

If TraceSucceeded is false, contains a short reason.

public Int32 TraceQueries { get; set; } #

Total number of trace queries attempted.

public Int32 TraceQueriesFailed { get; set; } #

Number of trace queries that failed.

public Int32 TotalSteps { get; set; } #

Total number of steps captured across all trace queries.

public IReadOnlyList<DnsTraceQuery> Queries { get; set; } #

Per-record-type trace results.

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

Assessment collection for report-friendly output.

{{ include "footer" }}