Domain Detective

API Reference

Class

DomainHealthCheck

Namespace DomainDetective
Assembly DomainDetective

Provides helper methods mapping health check types to results.

Inheritance

Usage

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

Accepted by parameters

Constructors

public DomainHealthCheck(DnsEndpoint dnsEndpoint = System, InternalLogger internalLogger = null) #

Initializes a new instance of the DomainHealthCheck class.

Parameters

dnsEndpoint DnsClientX.DnsEndpoint = System optionalposition: 0
DNS server to use for queries. Defaults to the system DNS endpoint.
internalLogger DomainDetective.InternalLogger = null optionalposition: 1
Optional logger for diagnostic output.

Methods

public DomainSummary BuildSummary() #
Returns: DomainSummary

Creates a high level summary of key analyses.

Returns

A populated DomainSummary.

public async Task CheckBIMI(String bimiRecord, Boolean skipIndicatorDownload = false, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw BIMI record.

Parameters

bimiRecord System.String requiredposition: 0
BIMI record text.
skipIndicatorDownload System.Boolean = false optionalposition: 1
When true, do not download the SVG indicator.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
CheckCAA 2 overloads
public async Task CheckCAA(List<String> caaRecords, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a single CAA record.

Parameters

caaRecord System.String requiredposition: 0
CAA record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckCAA(System.Collections.Generic.List{System.String} caaRecords, System.Threading.CancellationToken cancellationToken) #

Analyzes multiple CAA records.

Parameters

caaRecords System.Collections.Generic.List{System.String} required
Collection of CAA record texts.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public async Task CheckContactInfo(String contactRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw contact TXT record.

Parameters

contactRecord System.String requiredposition: 0
Contact record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckDANE 2 overloads
public async Task CheckDANE(IEnumerable<String> daneRecords, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a single DANE record.

Parameters

daneRecord System.String requiredposition: 0
TLSA record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckDANE(System.Collections.Generic.IEnumerable{System.String} daneRecords, System.Threading.CancellationToken cancellationToken) #

Analyzes multiple DANE records.

Parameters

daneRecords System.Collections.Generic.IEnumerable{System.String} required
Collection of TLSA record texts.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public async Task CheckDKIM(String dkimRecord, String selector = "default", CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw DKIM record.

Parameters

dkimRecord System.String requiredposition: 0
DKIM record text.
selector System.String = "default" optionalposition: 1
Selector associated with the record.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task CheckDMARC(String dmarcRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw DMARC record.

Parameters

dmarcRecord System.String requiredposition: 0
DMARC record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckDNSBL 2 overloads
public async Task CheckDNSBL(String[] nameOrIpAddresses, CancellationToken cancellationToken = null) #
Returns: Task

Checks a single input (IP address or domain) against configured DNS block lists.

Parameters

nameOrIpAddress System.String requiredposition: 0
IP address or domain to query.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckDNSBL(System.String[] nameOrIpAddresses, System.Threading.CancellationToken cancellationToken) #

Checks multiple inputs (IP addresses and/or domains) against DNS block lists.

Parameters

nameOrIpAddresses System.String[] required
Inputs to query.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public Void CheckDnsTunneling(String domainName, CancellationToken ct = null) #
Returns: Void

Analyzes DNS logs for tunneling patterns.

Parameters

domainName System.String requiredposition: 0
ct System.Threading.CancellationToken = null optionalposition: 1
public async Task CheckDnsTunnelingAsync(String domainName, CancellationToken ct = null) #
Returns: Task

Executes the check dns tunneling async operation.

Parameters

domainName System.String requiredposition: 0
ct System.Threading.CancellationToken = null optionalposition: 1
public async Task CheckImapTlsHost(String host, Int32 port = 143, CancellationToken cancellationToken = null) #
Returns: Task

Checks a host for IMAP TLS capabilities.

Parameters

host System.String requiredposition: 0
port System.Int32 = 143 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckIPNeighbors(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries neighbors sharing the same IP as domainName.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task CheckMailIPNeighbors(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries neighbors for IPs used by MX hosts of domainName.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task CheckMailLatency(String host, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Measures mail server connection and banner latency.

Parameters

host System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
CheckMessageHeaders 2 overloads
public MessageHeaderAnalysis CheckMessageHeaders(String rawHeaders, CancellationToken ct = null) #
Returns: MessageHeaderAnalysis

Parses raw message headers.

Parameters

rawHeaders System.String requiredposition: 0
Unparsed header text.
ct System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.

Returns

Populated MessageHeaderAnalysis instance.

public MessageHeaderAnalysis CheckMessageHeaders(String rawHeaders, IEnumerable<String> expectedMxHosts, CancellationToken ct = null) #
Returns: MessageHeaderAnalysis

Parses raw message headers and compares the observed route with expected public MX hosts.

Parameters

rawHeaders System.String requiredposition: 0
Unparsed header text.
expectedMxHosts System.Collections.Generic.IEnumerable{System.String} requiredposition: 1
Public MX hosts expected to process inbound mail.
ct System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.

Returns

Populated MessageHeaderAnalysis instance.

public async Task CheckMX(String mxRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw MX record.

Parameters

mxRecord System.String requiredposition: 0
MX record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckNS 2 overloads
public async Task CheckNS(List<String> nsRecords, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a single NS record.

Parameters

nsRecord System.String requiredposition: 0
NS record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
CheckNS(System.Collections.Generic.List{System.String} nsRecords, System.Threading.CancellationToken cancellationToken) #

Analyzes multiple NS records.

Parameters

nsRecords System.Collections.Generic.List{System.String} required
Collection of NS record texts.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public async Task CheckOpenRelayHost(String host, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Tests an SMTP server for open relay configuration.

Parameters

host System.String requiredposition: 0
Target host name.
port System.Int32 = 25 optionalposition: 1
Port to connect to. Must be between 1 and 65535.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task CheckOpenResolverHost(String host, Int32 port = 53, CancellationToken cancellationToken = null) #
Returns: Task

Checks if a DNS server allows recursive queries.

Parameters

host System.String requiredposition: 0
Target server host name or IP.
port System.Int32 = 53 optionalposition: 1
DNS port number. Must be between 1 and 65535.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task CheckPop3TlsHost(String host, Int32 port = 110, CancellationToken cancellationToken = null) #
Returns: Task

Checks a host for POP3 TLS capabilities.

Parameters

host System.String requiredposition: 0
port System.Int32 = 110 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckPortAvailability(String host, IEnumerable<Int32> ports = null, CancellationToken cancellationToken = null) #
Returns: Task

Tests connectivity to common service ports on a host.

Parameters

host System.String requiredposition: 0
ports System.Collections.Generic.IEnumerable{System.Int32} = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckSMIMEA(String smimeaRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw SMIMEA record.

Parameters

smimeaRecord System.String requiredposition: 0
SMIMEA record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task CheckSmtpBannerHost(String host, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Retrieves the SMTP banner from a host.

Parameters

host System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckSmtpTlsHost(String host, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Checks a host for SMTP TLS capabilities.

Parameters

host System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckSnmpHost(String host, Int32 port = 161, CancellationToken cancellationToken = null) #
Returns: Task

Checks a host for SNMP responses.

Parameters

host System.String requiredposition: 0
port System.Int32 = 161 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckSOA(String soaRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw SOA record.

Parameters

soaRecord System.String requiredposition: 0
SOA record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task CheckSPF(String spfRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw SPF record.

Parameters

spfRecord System.String requiredposition: 0
SPF record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task CheckStartTlsHost(String host, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Checks a host for STARTTLS support.

Parameters

host System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task CheckTLSRPT(String tlsRptRecord, CancellationToken cancellationToken = null) #
Returns: Task

Analyzes a raw TLSRPT record.

Parameters

tlsRptRecord System.String requiredposition: 0
TLSRPT record text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task CheckWHOIS(String domain, CancellationToken cancellationToken = null) #
Returns: Task

Queries WHOIS information and IANA RDAP for a domain.

Parameters

domain System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public Void ConfigureExecution(HealthCheckExecutionOptions executionOptions = null) #
Returns: Void

Applies execution options to resolver concurrency and logging behavior.

Parameters

executionOptions DomainDetective.HealthCheckExecutionOptions = null optionalposition: 0
Optional settings to apply for this run.
public DomainHealthCheck FilterAnalyses(IEnumerable<HealthCheckType> healthCheckTypes) #
Returns: DomainHealthCheck

Creates a copy with only the specified analyses included.

Parameters

healthCheckTypes System.Collections.Generic.IEnumerable{DomainDetective.HealthCheckType} requiredposition: 0
Health checks that should remain in the returned .

Returns

A clone of this object with non-selected analyses removed.

public IEnumerable<Assessment> GetAllAssessments() #
Returns: IEnumerable<Assessment>

Aggregated assessments collected from all analyses that expose them.

GetAnalysisFor(DomainDetective.HealthCheckType arg1) #

Gets the analysis result instance for a single health check type.

Parameters

arg1 DomainDetective.HealthCheckType required
public IReadOnlyDictionary<HealthCheckType, Object> GetAnalysisMap() #
Returns: IReadOnlyDictionary<HealthCheckType, Object>

Creates a dictionary mapping each HealthCheckType to the corresponding analysis result instance.

Returns

Read-only dictionary of health check results.

public IEnumerable<IHasAssessments> GetAssessmentProviders() #
Returns: IEnumerable<IHasAssessments>

Gets assessment providers.

public static CheckDescription GetCheckDescription(HealthCheckType type) #
Returns: CheckDescription

Gets the description for a health check.

Parameters

type DomainDetective.HealthCheckType requiredposition: 0
Health check type.

Returns

Description instance or null.

public IReadOnlyList<RecommendationAdvice> GetRecommendations() #
Returns: IReadOnlyList<RecommendationAdvice>

Returns unique recommendations for all current assessments.

public IReadOnlyList<RecommendationView> GetRecommendationViews() #
Returns: IReadOnlyList<RecommendationView>

Returns grouped recommendation views (by code) for all current assessments.

public async Task QueryRDAP(String domain, CancellationToken cancellationToken = null) #
Returns: Task

Queries RDAP information for a domain.

Parameters

domain System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task RefreshPublicSuffixListAsync(String url = "https://raw.githubusercontent.com/EvotecIT/DomainDetective/refs/heads/master/Data/public_suffix_list.dat", Boolean force = false) #
Returns: Task

Downloads the latest public suffix list and refreshes cached data. Cached data newer than seven days is reused unless force is true.

Parameters

url System.String = "https://raw.githubusercontent.com/EvotecIT/DomainDetective/refs/heads/master/Data/public_suffix_list.dat" optionalposition: 0
Optional URL to fetch the list from.
force System.Boolean = false optionalposition: 1
Ignore the cache and download fresh data.
public async Task ScanPorts(String host, IEnumerable<Int32> ports = null, PortScanProfile[] profiles = null, CancellationToken cancellationToken = null, Boolean showProgress = true) #
Returns: Task

Scans a host for open TCP and UDP ports.

Parameters

host System.String requiredposition: 0
ports System.Collections.Generic.IEnumerable{System.Int32} = null optionalposition: 1
profiles DomainDetective.PortScanProfileDefinition.PortScanProfile[] = null optionalposition: 2
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
showProgress System.Boolean = true optionalposition: 4
public static Boolean SupportsDomainVerification(HealthCheckType healthCheckType) #
Returns: Boolean

Determines whether a health check can run from a domain or host input alone.

Parameters

healthCheckType DomainDetective.HealthCheckType requiredposition: 0
Health check to evaluate.

Returns

true when [[cref:DomainDetective.DomainHealthCheck.Verify(System.String,DomainDetective.HealthCheckType[],System.String[],DomainDetective.ServiceType[],System.Int32[],DomainDetective.PortScanProfileDefinition.PortScanProfile[],System.Threading.CancellationToken,DomainDetective.HealthCheckExecutionOptions,System.Boolean)]] can execute the check directly.

TestNtpServer 2 overloads
public Task TestNtpServer(NtpServer server, Int32 port = 123, CancellationToken cancellationToken = null) #
Returns: Task

Queries an NTP server for clock information.

Parameters

host System.String requiredposition: 0
Target server host name or IP.
port System.Int32 = 123 optionalposition: 1
NTP port number.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
TestNtpServer(DomainDetective.NtpServer server, System.Int32 port, System.Threading.CancellationToken cancellationToken) #

Queries a predefined NTP server.

Parameters

server DomainDetective.NtpServer required
Built-in server enumeration.
port System.Int32 required
NTP port number.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public String ToJson(JsonSerializerOptions options = null) #
Returns: String

Serializes this instance to a JSON string.

Parameters

options System.Text.Json.JsonSerializerOptions = null optionalposition: 0
Optional serializer options. If not provided, is enabled.

Returns

A JSON representation of the current .

public async Task Verify(String domainName, HealthCheckType[] healthCheckTypes = null, String[] dkimSelectors = null, ServiceType[] daneServiceType = null, Int32[] danePorts = null, PortScanProfile[] portScanProfiles = null, CancellationToken cancellationToken = null, HealthCheckExecutionOptions executionOptions = null, Boolean useDefaultChecksWhenEmpty = true) #
Returns: Task

Runs the requested health checks against a domain.

Parameters

domainName System.String requiredposition: 0
Domain to validate.
healthCheckTypes DomainDetective.HealthCheckType[] = null optionalposition: 1
Health checks to execute or null for defaults.
dkimSelectors System.String[] = null optionalposition: 2
DKIM selectors to use when verifying DKIM.
daneServiceType DomainDetective.ServiceType[] = null optionalposition: 3
DANE service types to inspect. When null, SMTP and HTTPS (port 443) are queried.
danePorts System.Int32[] = null optionalposition: 4
Custom ports to check for DANE. Overrides daneServiceType when provided.
portScanProfiles DomainDetective.PortScanProfileDefinition.PortScanProfile[] = null optionalposition: 5
Optional port scan profiles to use.
cancellationToken System.Threading.CancellationToken = null optionalposition: 6
Token to cancel the operation.
executionOptions DomainDetective.HealthCheckExecutionOptions = null optionalposition: 7
Optional execution settings for this verification run.
useDefaultChecksWhenEmpty System.Boolean = true optionalposition: 8
When false, an empty healthCheckTypes array results in no checks being executed.
public async Task VerifyAgentReadinessAsync(String domainName, CancellationToken cancellationToken = null, AgentReadinessOptions options = null) #
Returns: Task

Assesses machine-readable discovery resources and AI-agent readiness for the specified domain or URL.

Parameters

domainName System.String requiredposition: 0
Domain, host, or HTTP/HTTPS URL to analyze.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token used to cancel the operation.
options DomainDetective.AgentReadinessOptions = null optionalposition: 2
Optional agent-readiness analysis options.
public async Task VerifyApexAddresses(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries apex A/AAAA for a domain and performs analysis.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public ARCAnalysis VerifyARC(String rawHeaders, CancellationToken ct = null) #
Returns: ARCAnalysis

Validates ARC headers contained in rawHeaders.

Parameters

rawHeaders System.String requiredposition: 0
Raw message headers.
ct System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.

Returns

Populated ARCAnalysis instance.

public async Task<ARCAnalysis> VerifyARCAsync(String rawHeaders, CancellationToken ct = null) #
Returns: Task<ARCAnalysis>

Executes the verify arc async operation.

Parameters

rawHeaders System.String requiredposition: 0
ct System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyAutodiscover(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Verifies Autodiscover for a domain using DNS hints and an Outlook-like HTTP flow.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public static async Task<IReadOnlyList<DomainHealthCheckRun>> VerifyBatchAsync(IEnumerable<String> domainNames, HealthCheckType[] healthCheckTypes = null, String[] dkimSelectors = null, ServiceType[] daneServiceType = null, Int32[] danePorts = null, PortScanProfile[] portScanProfiles = null, HealthCheckExecutionOptions executionOptions = null, Func<String, DomainHealthCheck> healthCheckFactory = null, CancellationToken cancellationToken = null) #
Returns: Task<IReadOnlyList<DomainHealthCheckRun>>

Runs domain health checks for multiple domains with optional parallelism.

Parameters

domainNames System.Collections.Generic.IEnumerable{System.String} requiredposition: 0
Domains to process.
healthCheckTypes DomainDetective.HealthCheckType[] = null optionalposition: 1
Health checks to execute or null for defaults.
dkimSelectors System.String[] = null optionalposition: 2
DKIM selectors to use when verifying DKIM.
daneServiceType DomainDetective.ServiceType[] = null optionalposition: 3
DANE service types to inspect. When null, SMTP and HTTPS (port 443) are queried.
danePorts System.Int32[] = null optionalposition: 4
Custom ports to check for DANE. Overrides daneServiceType when provided.
portScanProfiles DomainDetective.PortScanProfileDefinition.PortScanProfile[] = null optionalposition: 5
Optional port scan profiles to use.
executionOptions DomainDetective.HealthCheckExecutionOptions = null optionalposition: 6
Optional execution settings for this batch run.
healthCheckFactory System.Func{System.String,DomainDetective.DomainHealthCheck} = null optionalposition: 7
Factory for per-domain DomainHealthCheck instances.
cancellationToken System.Threading.CancellationToken = null optionalposition: 8
Token to cancel the operation.
public async Task VerifyBIMI(String domainName, Boolean skipIndicatorDownload = false, CancellationToken cancellationToken = null) #
Returns: Task

Queries and analyzes BIMI records for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
skipIndicatorDownload System.Boolean = false optionalposition: 1
When true, do not download the SVG indicator.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task VerifyCAA(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries CAA records for a domain and performs analysis.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyContactInfo(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries contact TXT records for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyCtTimelineAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Builds a certificate transparency (CT) timeline for the specified domain.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
VerifyDANE 3 overloads
public async Task VerifyDANE(String domainName, ServiceType[] serviceTypes, CancellationToken cancellationToken = null) #
Returns: Task

Queries TLSA records for specific ports on a domain. Generated names use the `_tcp` or `_udp` label depending on the protocol.

Parameters

domainName System.String requiredposition: 0
Domain to query.
ports System.Int32[] requiredposition: 1
Ports to check for DANE.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task VerifyDANE(ServiceDefinition[] services, CancellationToken cancellationToken = null) #
Returns: Task

Queries TLSA records for the provided service definitions. Generated names include the `_tcp` or `_udp` label as appropriate.

Parameters

services DomainDetective.ServiceDefinition[] requiredposition: 0
Services to query.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
VerifyDANE(System.String domainName, DomainDetective.ServiceType[] serviceTypes, System.Threading.CancellationToken cancellationToken) #

Queries TLSA records based on common service types. Generated names use the `_tcp` or `_udp` label.

Parameters

domainName System.String required
Domain to query.
serviceTypes DomainDetective.ServiceType[] required
Services to investigate.
cancellationToken System.Threading.CancellationToken required
Token to cancel the operation.
public async Task VerifyDanglingCname(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Detects dangling CNAME records for the domain.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDelegation(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Validates delegation information against the parent zone.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDirectoryExposure(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Scans common directories for public exposure.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
VerifyDKIM 2 overloads
public Task VerifyDKIM(String domainName, String[] selectors, CancellationToken cancellationToken = null) #
Returns: Task

Verifies DKIM records for the specified domain.

Parameters

domainName System.String requiredposition: 0
Domain to inspect.
selectors System.String[] requiredposition: 1
Selectors to query or null to auto detect.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task VerifyDKIM(String domainName, String[] selectors, Boolean includeMissingSelectors, CancellationToken cancellationToken = null) #
Returns: Task

Verifies DKIM records for the specified domain.

Parameters

domainName System.String requiredposition: 0
Domain to inspect.
selectors System.String[] requiredposition: 1
Selectors to query or null to auto detect.
includeMissingSelectors System.Boolean requiredposition: 2
When true, AnalysisResults will include entries for selectors that have no published DKIM record and warnings will be logged for those missing records. When false, selectors with no published DKIM record are omitted from AnalysisResults and no warnings are logged for them.
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
Token to cancel the operation.
public async Task VerifyDMARC(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries DNS and analyzes DMARC records for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyDnsAmplification(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Evaluates DNS amplification posture for authoritative name servers (recursion + EDNS + response size probes).

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDNSBL(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Checks domain MX hosts against configured DNS block lists.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyDNSBLWithMode(String domainName, DomainIpScanMode scanMode, Boolean clearExisting = true, CancellationToken cancellationToken = null) #
Returns: Task

Checks domain against DNSBL lists using a specified domain IP scan mode.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
scanMode DomainDetective.DomainIpScanMode requiredposition: 1
Controls which IPs to resolve and check for IP-based DNSBLs.
clearExisting System.Boolean = true optionalposition: 2
Whether to clear previous results prior to running.
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
Token to cancel the operation.
public async Task VerifyDnsInventoryAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Captures a lightweight DNS inventory for a domain by querying common record types and recording answers (and optionally authority/additional sections).

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDnsOverTls(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Detects DNS over TLS (DoT) support for authoritative name servers (TCP/853 + TLS handshake).

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDnsPropagationAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Compares DNS answers across multiple public resolvers (global visibility).

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyDNSSEC(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries DNSSEC information for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyDnsTraceAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Captures an iterative, authoritative-style DNS trace (root to answer) with a hop-by-hop log.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyEdnsSupport(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Tests authoritative name servers for EDNS support.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyEmailAddress(String emailAddress, EmailAddressValidationOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task

Validates an email address with syntax, DNS, and optional SMTP/HTTP checks.

Parameters

emailAddress System.String requiredposition: 0
options DomainDetective.EmailAddressValidationOptions = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task VerifyIdpInfo(String domain, CancellationToken cancellationToken = null) #
Returns: Task

Probes OIDC discovery and GetUserRealm to collect tenant hints.

Parameters

domain System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyIMAPTLS(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Checks all MX hosts for IMAP TLS configuration.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyIpEnrichmentAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Enriches discovered IPs (apex, MX, NS) with reverse DNS, ASN/org and geo hints.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyMailLatency(String domainName, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Measures mail server connection and banner latency across all MX hosts.

Parameters

domainName System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task VerifyMicrosoft365TenantAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Builds a Microsoft 365 aggregate view by reusing identity, DNS inventory, subdomain, and Autodiscover analyses.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyMTASTS(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Verifies MTA-STS policy for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyMTASTSBootstrap(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Verifies only the MTA-STS DNS bootstrap record for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyMX(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries MX records for a domain and performs analysis.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyNS(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries NS records for a domain and performs analysis.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyOpenRelay(String domainName, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Tests MX hosts for open relay configuration.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
port System.Int32 = 25 optionalposition: 1
SMTP port to test.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Token to cancel the operation.
public async Task VerifyOpenResolver(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Tests name servers for open recursion.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task<PingReply> VerifyPing(String host, Int32 timeout = 4000, CancellationToken cancellationToken = null) #
Returns: Task<PingReply>

Sends an ICMP echo request to a host.

Parameters

host System.String requiredposition: 0
timeout System.Int32 = 4000 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
VerifyPlainHttp 2 overloads
public async Task VerifyPlainHttp(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Performs a basic HTTP check without enforcing HTTPS.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyPlainHttp(String domainName, HttpRequestOptions requestOptions, CancellationToken cancellationToken = null) #
Returns: Task

Performs a basic HTTP check without enforcing HTTPS, with request customization options.

Parameters

domainName System.String requiredposition: 0
requestOptions DomainDetective.HttpRequestOptions requiredposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task VerifyPOP3TLS(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Checks all MX hosts for POP3 TLS configuration.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyRPKI(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Validates RPKI origins for domain IPs.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifySecurityTxt(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Executes the verify security txt operation.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifySitemapAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Validates sitemap XML and sitemap-listed URLs for the specified domain or URL.

Parameters

domainName System.String requiredposition: 0
Domain, host, sitemap URL, or HTTP/HTTPS URL to analyze.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token used to cancel the operation.
public async Task VerifySMIMEA(String emailAddress, CancellationToken cancellationToken = null) #
Returns: Task

Queries SMIMEA records for an email address.

Parameters

emailAddress System.String requiredposition: 0
Email address to query.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifySmtpAuth(String domainName, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Retrieves SMTP AUTH capabilities from all MX hosts.

Parameters

domainName System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task VerifySMTPBanner(String domainName, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Collects SMTP banners from all MX hosts.

Parameters

domainName System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
VerifySMTPTLS 2 overloads
public Task VerifySMTPTLS(String domainName, Int32 port, CancellationToken cancellationToken = null) #
Returns: Task

Checks all MX hosts for SMTP TLS configuration.

Parameters

domainName System.String requiredposition: 0
port System.Int32 requiredposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public Task VerifySMTPTLS(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Checks all MX hosts for SMTP TLS configuration using the default port.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifySOA(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries SOA record for a domain and performs analysis.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifySPF(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries DNS and analyzes SPF records for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifySTARTTLS(String domainName, Int32 port = 25, CancellationToken cancellationToken = null) #
Returns: Task

Checks all MX hosts for STARTTLS support.

Parameters

domainName System.String requiredposition: 0
port System.Int32 = 25 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
public async Task VerifySubdomainsAsync(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Discovers subdomains using certificate transparency (CT) and (optionally) verifies whether the discovered names still resolve in DNS.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyTakeoverCname(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Checks for CNAMEs pointing to takeover prone providers.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyThreatFeed(String ipAddress, CancellationToken cancellationToken = null) #
Returns: Task

Queries threat feeds for IP reputation.

Parameters

ipAddress System.String requiredposition: 0
IP address to check.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyThreatIntel(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries reputation services for threat listings.

Parameters

domainName System.String requiredposition: 0
Domain or IP address to check.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyTLSRPT(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Queries and analyzes TLSRPT records for a domain.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task<IReadOnlyList<TracerouteHop>> VerifyTraceroute(String host, Int32 maxHops = 30, Int32 timeout = 4000, CancellationToken cancellationToken = null) #
Returns: Task<IReadOnlyList<TracerouteHop>>

Performs a traceroute to the specified host.

Parameters

host System.String requiredposition: 0
maxHops System.Int32 = 30 optionalposition: 1
timeout System.Int32 = 4000 optionalposition: 2
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
public async Task VerifyTyposquatting(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Generates typosquatting variants and checks if they resolve.

Parameters

domainName System.String requiredposition: 0
Domain to analyze.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Token to cancel the operation.
public async Task VerifyWebsiteCertificate(String url, Int32 port = 443, CancellationToken cancellationToken = null) #
Returns: Task

Verifies the certificate for a website. If no scheme is provided in url, "https://" is assumed.

Parameters

url System.String requiredposition: 0
port System.Int32 = 443 optionalposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
VerifyWebsiteHttps 2 overloads
public async Task VerifyWebsiteHttps(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Performs an HTTPS security check collecting key headers and scanning for mixed content.

Parameters

domainName System.String requiredposition: 0
Domain or host (port optional).
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.
public async Task VerifyWebsiteHttps(String domainName, HttpRequestOptions requestOptions, Boolean captureBody = true, CancellationToken cancellationToken = null) #
Returns: Task

Performs an HTTPS security check collecting key headers and scanning for mixed content, with request customization options.

Parameters

domainName System.String requiredposition: 0
requestOptions DomainDetective.HttpRequestOptions requiredposition: 1
captureBody System.Boolean = true optionalposition: 2
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
public async Task VerifyWebStaticScan(String url, CancellationToken cancellationToken = null) #
Returns: Task

Performs a static (non-browser) web scan for the specified URL using shared components.

Parameters

url System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
public async Task VerifyWildcardDns(String domainName, Int32 sampleCount = 3) #
Returns: Task

Queries random subdomains to detect wildcard DNS behavior.

Parameters

domainName System.String requiredposition: 0
Domain to verify.
sampleCount System.Int32 = 3 optionalposition: 1
Number of names to test.
public async Task VerifyZoneTransfer(String domainName, CancellationToken cancellationToken = null) #
Returns: Task

Attempts zone transfers against authoritative name servers.

Parameters

domainName System.String requiredposition: 0
cancellationToken System.Threading.CancellationToken = null optionalposition: 1

Properties

public IHttpClientFactory HttpClientFactory { get; set; } #

Factory used to obtain HttpClient instances.

public Boolean IsPublicSuffix { get; set; } #

Indicates whether the last verified domain is itself a public suffix.

public DmarcAnalysis DmarcAnalysis { get; set; } #

Gets the dmarc analysis.

Value

The dmarc analysis.

public SpfAnalysis SpfAnalysis { get; set; } #

Gets the SPF analysis.

Value

The SPF analysis.

public DkimAnalysis DKIMAnalysis { get; set; } #

Gets the DKIM analysis.

Value

Results of DKIM validation.

public MXAnalysis MXAnalysis { get; set; } #

Gets the MX record analysis.

Value

Details about mail exchanger configuration.

public ReverseDnsAnalysis ReverseDnsAnalysis { get; set; } #

Gets the reverse DNS analysis for MX hosts.

Value

PTR lookup results for mail exchangers.

public FCrDnsAnalysis FcrDnsAnalysis { get; set; } #

Gets the forward-confirmed reverse DNS analysis.

Value

Results verifying PTR hostnames resolve back to their IP.

public CAAAnalysis CAAAnalysis { get; set; } #

Gets the CAA analysis.

Value

Certificate authority authorization results.

public NSAnalysis NSAnalysis { get; set; } #

Gets the NS analysis.

Value

Name server configuration results.

public DANEAnalysis DaneAnalysis { get; set; } #

Gets the DANE analysis.

Value

DANE records and validation output.

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

Optional override for DNS queries used by DANE checks.

public SMIMEAAnalysis SmimeaAnalysis { get; set; } #

Gets the SMIMEA analysis.

Value

SMIMEA records and validation output.

public EmailAddressValidationAnalysis EmailAddressValidationAnalysis { get; set; } #

Gets the email address validation analysis.

Value

Syntax/DNS/SMTP checks for a mailbox.

public DNSBLAnalysis DNSBLAnalysis { get; set; } #

Gets the DNS block list analysis.

Value

DNSBL lookup results.

public DnsSecAnalysis DnsSecAnalysis { get; set; } #

Gets the DNSSEC analysis.

Value

Information about DNSSEC chain validity.

public MTASTSAnalysis MTASTSAnalysis { get; set; } #

Gets the MTA-STS analysis.

Value

SMTP MTA-STS policy results.

public CertificateAnalysis CertificateAnalysis { get; set; } #

Gets the TLS certificate analysis.

Value

Results of certificate checks.

public SecurityTXTAnalysis SecurityTXTAnalysis { get; set; } #

Gets the security.txt analysis.

Value

Information from discovered security.txt files.

public RobotsTxtAnalysis RobotsTxtAnalysis { get; set; } #

Gets the robots.txt analysis.

Value

Information parsed from robots.txt.

public SOAAnalysis SOAAnalysis { get; set; } #

Gets the SOA analysis.

Value

Start of authority record details.

public WhoisAnalysis WhoisAnalysis { get; set; } #

Gets the WHOIS analysis.

Value

Parsed WHOIS information.

public RdapAnalysis RdapAnalysis { get; set; } #

Gets the RDAP analysis.

Value

Registration data from RDAP.

public ZoneTransferAnalysis ZoneTransferAnalysis { get; set; } #

Gets the zone transfer analysis.

Value

AXFR test results per name server.

public OpenRelayAnalysis OpenRelayAnalysis { get; set; } #

Gets the open relay analysis.

Value

SMTP relay test results.

public OpenResolverAnalysis OpenResolverAnalysis { get; set; } #

Gets the open resolver analysis.

Value

Recursive query test results.

public STARTTLSAnalysis StartTlsAnalysis { get; set; } #

Gets the STARTTLS analysis.

Value

Information from STARTTLS negotiations.

public SMTPTLSAnalysis SmtpTlsAnalysis { get; set; } #

Gets the SMTP TLS analysis.

Value

Results of SMTP TLS capability checks.

public IMAPTLSAnalysis ImapTlsAnalysis { get; set; } #

Gets the IMAP TLS analysis.

Value

Results of IMAP TLS capability checks.

public POP3TLSAnalysis Pop3TlsAnalysis { get; set; } #

Gets the POP3 TLS analysis.

Value

Results of POP3 TLS capability checks.

public SMTPBannerAnalysis SmtpBannerAnalysis { get; set; } #

Gets the SMTP banner analysis.

Value

Initial greetings from SMTP servers.

public MailLatencyAnalysis MailLatencyAnalysis { get; set; } #

Gets the mail latency analysis.

Value

Connection and banner timing results.

public SmtpAuthAnalysis SmtpAuthAnalysis { get; set; } #

Gets the SMTP AUTH analysis.

Value

Advertised authentication mechanisms.

public TLSRPTAnalysis TLSRPTAnalysis { get; set; } #

Gets the TLSRPT analysis.

Value

Reports about TLS failures.

public BimiAnalysis BimiAnalysis { get; set; } #

Gets the BIMI analysis.

Value

Brand Indicators for Message Identification results.

public IdpInfoAnalysis IdpInfoAnalysis { get; set; } #

Gets the identity provider information analysis.

Value

OIDC discovery and GetUserRealm results.

public Microsoft365TenantAnalysis Microsoft365TenantAnalysis { get; set; } #

Gets the Microsoft 365 aggregate analysis.

Value

Typed Microsoft 365 tenant, service, and DNS application hints.

public ApexAddressAnalysis ApexAddressAnalysis { get; set; } #

Gets the apex address (A/AAAA) analysis.

Value

Results of apex A/AAAA lookups.

public AutodiscoverAnalysis AutodiscoverAnalysis { get; set; } #

Gets the Autodiscover analysis.

Value

Results of Autodiscover related checks.

public AutodiscoverHttpAnalysis AutodiscoverHttpAnalysis { get; set; } #

Gets the Autodiscover HTTP analysis.

Value

Results of Autodiscover endpoint checks.

public HttpAnalysis HttpAnalysis { get; set; } #

Gets the HTTP analysis.

Value

HTTP endpoint validation results.

public HPKPAnalysis HPKPAnalysis { get; set; } #

Gets the HPKP analysis.

Value

Deprecated HTTP public key pinning information.

public ContactInfoAnalysis ContactInfoAnalysis { get; set; } #

Gets the contact TXT analysis.

Value

Parsed contact information.

public MessageHeaderAnalysis MessageHeaderAnalysis { get; set; } #

Gets the message header analysis.

Value

Details parsed from message headers.

public ARCAnalysis ArcAnalysis { get; set; } #

Gets the ARC header analysis.

Value

Results from ARC chain validation.

public DanglingCnameAnalysis DanglingCnameAnalysis { get; set; } #

Gets the dangling CNAME analysis.

Value

Information about unresolved CNAME targets.

public DnsTtlAnalysis DnsTtlAnalysis { get; set; } #

Gets DNS TTL analysis.

Value

Information about record TTL values.

public PortAvailabilityAnalysis PortAvailabilityAnalysis { get; set; } #

Gets the port availability analysis.

Value

TCP port connectivity results.

public PortScanAnalysis PortScanAnalysis { get; set; } #

Gets the port scan analysis.

Value

Open port results.

public SnmpAnalysis SnmpAnalysis { get; set; } #

Gets the SNMP analysis.

Value

Results from SNMP service checks.

public IPNeighborAnalysis IPNeighborAnalysis { get; set; } #

Gets the IP neighbor analysis.

Value

Domains sharing the same IP address.

public RPKIAnalysis RpkiAnalysis { get; set; } #

Gets the RPKI analysis.

Value

Origin validation results.

public DnsTunnelingAnalysis DnsTunnelingAnalysis { get; set; } #

Gets the DNS tunneling analysis.

Value

Possible tunneling activities.

public TyposquattingAnalysis TyposquattingAnalysis { get; set; } #

Gets the typosquatting analysis.

Value

Potential look-alike domains.

public ThreatIntelAnalysis ThreatIntelAnalysis { get; set; } #

Gets the threat intelligence analysis.

Value

Results from reputation services.

public ThreatFeedAnalysis ThreatFeedAnalysis { get; set; } #

Gets the threat feed analysis.

Value

Results from external threat feeds.

public WildcardDnsAnalysis WildcardDnsAnalysis { get; set; } #

Gets the wildcard DNS analysis.

Value

Results of wildcard detection.

public EdnsSupportAnalysis EdnsSupportAnalysis { get; set; } #

Gets the EDNS support analysis.

Value

Information about EDNS capabilities.

public DnsAmplificationAnalysis DnsAmplificationAnalysis { get; set; } #

Gets the DNS amplification posture analysis.

Value

Open recursion + EDNS + bounded large-answer probes.

public DnsOverTlsAnalysis DnsOverTlsAnalysis { get; set; } #

Gets the DNS over TLS (DoT) support analysis.

Value

Port 853/TLS probe results for authoritative name servers.

public FlatteningServiceAnalysis FlatteningServiceAnalysis { get; set; } #

Gets the flattening service analysis.

Value

Information about CNAME flattening services.

public TakeoverCnameAnalysis TakeoverCnameAnalysis { get; set; } #

Gets the takeover CNAME analysis.

Value

Information about risky cloud provider aliases.

public DirectoryExposureAnalysis DirectoryExposureAnalysis { get; set; } #

Gets the directory exposure analysis.

Value

Results of exposed directory checks.

public DnsHealthAnalysis DnsHealthAnalysis { get; set; } #

Gets the DNS Health analysis.

public NtpAnalysis NtpAnalysis { get; set; } #

Gets the NTP analysis.

Value

Clock information from NTP servers.

public WebStaticScanAnalysis WebStaticScanAnalysis { get; set; } #

Gets the static web scan analysis.

Value

Results of static (non-browser) web scanning.

public AgentReadinessAnalysis AgentReadinessAnalysis { get; set; } #

Gets the agent readiness analysis.

Value

AI crawler and agent-facing discovery results.

public SitemapAnalysis SitemapAnalysis { get; set; } #

Gets the sitemap analysis.

Value

Sitemap XML validation and sitemap-listed URL probe results.

public SubdomainsAnalysis SubdomainsAnalysis { get; set; } #

Gets the subdomain discovery analysis.

Value

CT-backed subdomain discovery with optional DNS verification.

public DnsInventoryAnalysis DnsInventoryAnalysis { get; set; } #

Gets the DNS inventory analysis.

Value

Common record inventory with TTLs and optional authority/additional capture.

public DnsTraceAnalysis DnsTraceAnalysis { get; set; } #

Gets the DNS trace analysis.

Value

Iterative authoritative trace log for explainability and debugging.

public CertificateTransparencyTimelineAnalysis CtTimelineAnalysis { get; set; } #

Gets the certificate transparency timeline analysis.

Value

Issuance/validity timeline and issuer diversity for CT entries.

public IpEnrichmentAnalysis IpEnrichmentAnalysis { get; set; } #

Gets the IP enrichment analysis.

Value

Reverse DNS + ASN/org + geo hints for discovered IPs.

public DnsPropagationSetAnalysis DnsPropagationSet { get; set; } #

Gets the DNS propagation set analysis.

Value

Multi-resolver DNS visibility summaries (per record type).

public MailDomainClassificationResult MailDomainClassification { get; set; } #

Gets the cached mail domain classification result.

Value

Best-effort classification of the domain's mail posture.

public ProviderMatch EmailProviderMatch { get; set; } #

Best-effort detection of email providers (primary/gateways/outbound) based on MX, SPF, and DKIM signals.

public IReadOnlyList<RecommendationAdvice> Recommendations { get; } #

Aggregated recommendations across all analysis modules.

public IReadOnlyList<RecommendationView> RecommendationViews { get; } #

Aggregated grouped recommendation views (by code), ordered by severity/category.

public Boolean UseSubdomainPolicy { get; set; } #

When true, DMARC policy strength evaluation checks the sp tag.

public Boolean UnicodeOutput { get; set; } #

Display domain names in Unicode where possible.

public DnsEndpoint DnsEndpoint { get; set; } #

DNS server used when querying records.

Value

The endpoint for DNS queries.

public DnsSelectionStrategy DnsSelectionStrategy { get; set; } #

Strategy for choosing the DNS server when multiple are configured.

Value

The selection strategy.

public List<DnsEndpoint> DnsEndpoints { get; } #

Optional list of resolver endpoints to use (multi-resolver).

public MultiResolverStrategy MultiResolverStrategy { get; set; } #

Strategy for multi-resolver queries.

public Nullable<Int32> MultiResolverMaxParallelism { get; set; } #

Maximum number of resolvers to query in parallel (null means all).

public Nullable<Int32> ResolverMaxConcurrency { get; set; } #

Optional concurrency hint for DNS resolver queries.

public HealthCheckExecutionOptions ExecutionOptions { get; } #

Execution options for running health checks.

public String MtaStsPolicyUrlOverride { get; set; } #

Optional override for the MTA-STS policy URL.

Value

A URL to use instead of querying DNS.

public String GoogleSafeBrowsingApiKey { get; set; } #

API key for Google Safe Browsing.

public String PhishTankApiKey { get; set; } #

API key for PhishTank.

public String VirusTotalApiKey { get; set; } #

API key for VirusTotal.

public String AbuseIpDbApiKey { get; set; } #

API key for AbuseIPDB.

public IEnumerable<String> DnsTunnelingLogs { get; set; } #

Log lines used for DNS tunneling analysis.

public DnsConfiguration DnsConfiguration { get; set; } #

Holds DNS client configuration used throughout analyses.

Value

The DNS configuration instance.

public String CacheDirectory { get; set; } #

Directory used for caching downloaded data.

public Int32 TyposquattingLevenshteinThreshold { get; set; } #

Maximum Levenshtein distance used for typosquatting detection.

public Boolean EnableHomoglyphDetection { get; set; } #

Enable detection of homoglyph characters.

public List<String> TyposquattingBrandKeywords { get; } #

Protected brand keywords for typosquatting detection.

public Boolean TyposquattingEnableEnrichment { get; set; } #

When true, promising typosquatting candidates are enriched with additional DD analyses.

public Int32 TyposquattingEnrichmentMaxCandidates { get; set; } #

Maximum number of typosquatting candidates enriched after DNS screening.

public Int32 TyposquattingEnrichmentMaxParallelism { get; set; } #

Maximum number of typosquatting enrichments performed in parallel.

public Boolean TyposquattingEnrichWhois { get; set; } #

When true, typosquatting enrichment includes WHOIS.

public Boolean TyposquattingEnrichHttp { get; set; } #

When true, typosquatting enrichment includes HTTP posture.

public Boolean TyposquattingEnrichIp { get; set; } #

When true, typosquatting enrichment includes IP enrichment.

public Boolean TyposquattingEnrichSmtpBanner { get; set; } #

When true, typosquatting enrichment includes SMTP banner checks on candidate MX hosts.

public Boolean TyposquattingEnrichSmtpRecipientAcceptance { get; set; } #

When true, typosquatting enrichment checks whether candidate MX hosts accept mail for the lookalike domain.

public Boolean TyposquattingEnrichWebStaticScan { get; set; } #

When true, typosquatting enrichment includes static web discovery.

public Boolean TyposquattingEnrichThreatIntel { get; set; } #

When true, typosquatting enrichment includes threat intelligence lookups.

public Boolean TyposquattingCaptureHttpBody { get; set; } #

When true, typosquatting HTTP enrichment captures response bodies.

public Boolean TyposquattingCompareOwnershipSignals { get; set; } #

When true, typosquatting candidates are compared with the source domain ownership footprint.

public Boolean TyposquattingOwnershipIncludeWhois { get; set; } #

When true, the source-domain ownership profile includes WHOIS registrar data.

public Boolean TyposquattingOwnershipIncludeIp { get; set; } #

When true, the source-domain ownership profile includes IP enrichment and ASN data.

public Boolean TyposquattingOwnershipIncludeMx { get; set; } #

When true, the source-domain ownership profile includes MX host overlap checks.

public Boolean TyposquattingEnableContentSimilarity { get; set; } #

When true, typosquatting candidates are compared with the source domain web content.

public Boolean TyposquattingSimilarityIncludeWebStaticScan { get; set; } #

When true, content similarity also uses static web analysis for title and technology overlap.

public Boolean TyposquattingEnableVisualSimilarity { get; set; } #

When true, typosquatting candidates are compared using reusable visual fingerprints.

public Int32 TyposquattingVisualMaxCandidates { get; set; } #

Maximum number of typosquatting candidates included in visual comparison.

public Int32 TyposquattingVisualMaxParallelism { get; set; } #

Maximum number of parallel visual comparisons.

public Boolean TyposquattingVisualUseStaticAssetCapture { get; set; } #

When true, visual similarity can fall back to static asset discovery such as favicons and OG images.

public Boolean TyposquattingVisualUseBrowserCapture { get; set; } #

When true, visual similarity can try a built-in rendered browser screenshot provider.

public Int32 TyposquattingVisualMaxAssetBytes { get; set; } #

Maximum number of bytes downloaded for a single typosquatting visual asset.

public Int32 TyposquattingVisualMaxAssetsPerPage { get; set; } #

Maximum number of visual assets compared per source or candidate page.

public Boolean DnsSecValidateLocally { get; set; } #

When true, DNSSEC queries use local validation (validateDnsSec: true) in DnsClientX.

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

Record types tested for DNS propagation (multi-resolver) checks.

public Int32 DnsPropagationMaxServers { get; set; } #

Maximum number of public resolvers queried for DNS propagation (bounded for responsiveness).

public Int32 DnsPropagationMaxParallelism { get; set; } #

Maximum parallel DNS propagation queries.

public Boolean DnsPropagationIncludeGeo { get; set; } #

When true, includes GeoIP lookups for mappable country rollups.

public Int32 DnsPropagationMaxResultsToKeep { get; set; } #

Maximum number of resolver results retained per record type for reporting.

public DomainSummary Summary { get; } #

Quick access to a condensed summary of this health check.

Fields

public static readonly JsonSerializerOptions JsonOptions #

Serialization settings used when persisting analysis data.

public static readonly HealthCheckType[] DefaultChecks #

Represents the default checks value.

Extension Methods

public static DomainPortfolioSnapshot ToPortfolioSnapshot(DomainHealthCheck healthCheck, String subject, IEnumerable<HealthCheckType> checks = null, Nullable<DateTimeOffset> capturedAtUtc = null) #
Returns: DomainPortfolioSnapshot

Builds a portfolio snapshot from this health check.

Parameters

healthCheck DomainDetective.DomainHealthCheck requiredposition: 0
Health check that contains analysis results.
subject System.String requiredposition: 1
Domain or host represented by the snapshot.
checks System.Collections.Generic.IEnumerable{DomainDetective.HealthCheckType} = null optionalposition: 2
Optional subset of checks to include.
capturedAtUtc System.Nullable{System.DateTimeOffset} = null optionalposition: 3
Optional capture time. Defaults to the current UTC time.

Returns

Storage-free portfolio snapshot.

{{ include "footer" }}