Domain Detective

API Reference

Class

DnsInventoryAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements
Modifiers sealed

Performs a lightweight DNS inventory for a domain by querying common record types and capturing answers (and optionally authority/additional sections) with TTLs for reporting.

Inheritance

  • Object
  • DnsInventoryAnalysis

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 inventory 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 queries.

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

Optional override returning a full DNS response for a given (name,type) query. Used by tests and offline callers.

public Boolean QuerySucceeded { get; set; } #

True when the inventory completed (even if some record types returned no data).

public String FailureReason { get; set; } #

If QuerySucceeded is false, this may contain a short reason.

public Int32 RecordTypesQueried { get; set; } #

Total number of record types attempted.

public Int32 RecordTypesFailed { get; set; } #

Number of record type queries that failed.

public Int32 TotalRecords { get; set; } #

Total number of captured records across all queries.

public DnsProvider Provider { get; set; } #

Best-effort inferred DNS provider based on NS/SOA patterns.

public Int32 ProviderScore { get; set; } #

Score used for provider inference (higher = more matches).

public IReadOnlyList<String> ProviderEvidence { get; set; } #

Short evidence strings explaining provider inference.

public MailProviderKind MailProvider { get; set; } #

Best-effort inferred mail provider based on MX patterns.

public Int32 MailProviderScore { get; set; } #

Score used for mail provider inference (higher = more matches).

public IReadOnlyList<String> MailProviderEvidence { get; set; } #

Short evidence strings explaining mail provider inference.

public DnsCnameTargetProvider CnameTargetProvider { get; set; } #

Best-effort inferred provider for apex CNAME target.

public DnsCnameTargetFlags CnameTargetFlags { get; set; } #

Flags describing the apex CNAME target (best-effort).

public IReadOnlyList<String> CnameTargetEvidence { get; set; } #

Short evidence strings explaining CNAME target inference.

public DnsTxtSignals TxtSignals { get; set; } #

Signals inferred from TXT records (apex).

public IReadOnlyList<String> TxtSignalsEvidence { get; set; } #

Short evidence strings explaining TXT signal inference.

public IReadOnlyList<DetectedDnsApplication> DetectedDnsApplications { get; set; } #

Typed applications and services inferred from DNS provider, mail provider, and TXT evidence.

public DnsCaaIssuers CaaIssuers { get; set; } #

Issuers inferred from CAA records (apex).

public IReadOnlyList<String> CaaIssuersEvidence { get; set; } #

Short evidence strings explaining CAA issuer inference.

public Boolean IncludeAuthorities { get; set; } #

When true (default), includes authority section records where present.

public Boolean IncludeAdditional { get; set; } #

When true, includes additional section records where present.

public Int32 MaxRecordsPerSection { get; set; } #

Maximum number of records captured per DNS section (answers/authority/additional).

public Int32 QueryConcurrency { get; set; } #

Maximum number of concurrent DNS queries for the inventory.

public DnsInventoryProfile Profile { get; set; } #

Inventory profile controlling which record types are queried.

public Boolean EvaluateIpv6Readiness { get; set; } #

When true, performs a lightweight IPv6 readiness roll-up (apex + MX/NS host AAAA).

public Int32 MaxIpv6ReadinessHostChecks { get; set; } #

Maximum number of MX/NS hostnames queried for AAAA during IPv6 readiness roll-up.

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

Queries captured for each record type.

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

Assessment collection for report-friendly output.

{{ include "footer" }}