Domain Detective

API Reference

Class

NSAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements

Performs analysis of NS records for a domain.

Inheritance

  • Object
  • NSAnalysis

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 AnalyzeNsRecords(IEnumerable<DnsAnswer> dnsResults, InternalLogger logger) #
Returns: Task

Processes NS records and determines their properties.

Parameters

dnsResults System.Collections.Generic.IEnumerable{DnsClientX.DnsAnswer} requiredposition: 0
logger DomainDetective.InternalLogger requiredposition: 1
public async Task AnalyzeParentDelegation(String domainName, InternalLogger logger) #
Returns: Task

Analyzes delegation information from the parent zone.

Parameters

domainName System.String requiredposition: 0
Domain being checked.
logger DomainDetective.InternalLogger requiredposition: 1
Logger used for diagnostics.
QueryDns(System.String arg1, DnsClientX.DnsRecordType arg2) #

Executes a DNS query for the specified record type.

Parameters

arg1 System.String required
arg2 DnsClientX.DnsRecordType required
public async Task<ValueTuple<List<String>, Dictionary<String, List<String>>>> QueryParentNsGlue(String domainName, InternalLogger logger) #
Returns: Task<ValueTuple<List<String>, Dictionary<String, List<String>>>>

Queries the parent zone for NS records and glue information.

Parameters

domainName System.String requiredposition: 0
logger DomainDetective.InternalLogger requiredposition: 1
public async Task QueryRootServers(InternalLogger logger) #
Returns: Task

Executes the query root servers operation.

Parameters

logger DomainDetective.InternalLogger requiredposition: 0
public async Task TestRecursion(InternalLogger logger) #
Returns: Task

Executes the test recursion operation.

Parameters

logger DomainDetective.InternalLogger requiredposition: 0

Properties

public String Subject { get; set; } #

Gets or sets the subject value.

public DnsConfiguration DnsConfiguration { get; set; } #

Configuration used for DNS queries.

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

Allows injection of a DNS query implementation for testing.

public Func<String, DnsRecordType, Task<IEnumerable<DnsResponse>>> QueryDnsFullOverride { get; set; } #

Optional full DNS query override that returns raw responses.

public Func<String, Task<Boolean>> RecursionTestOverride { get; set; } #

Optional override for recursion testing logic.

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

Gets or sets the ns records value.

public Boolean NsRecordExists { get; set; } #

Gets or sets the ns record exists value.

public Boolean HasDuplicates { get; set; } #

Gets or sets the has duplicates value.

public Boolean AtLeastTwoRecords { get; set; } #

Gets or sets the at least two records value.

public Boolean AllHaveAOrAaaa { get; set; } #

Gets or sets the all have a or aaaa value.

public Boolean PointsToCname { get; set; } #

Gets or sets the points to cname value.

public Boolean HasDiverseLocations { get; set; } #

Gets or sets the has diverse locations value.

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

Gets or sets the parent ns records value.

public Boolean DelegationMatches { get; set; } #

Gets or sets the delegation matches value.

public Boolean GlueRecordsComplete { get; set; } #

Gets or sets the glue records complete value.

public Boolean GlueRecordsConsistent { get; set; } #

Gets or sets the glue records consistent value.

public Dictionary<String, Boolean> RootServerResponses { get; set; } #

Gets or sets the root server responses value.

public Dictionary<String, Boolean> RecursionEnabled { get; set; } #

Gets or sets the recursion enabled value.

public Boolean EnableChaosFingerprinting { get; set; } #

Gets or sets the enable chaos fingerprinting value.

public Int32 ChaosQueryTimeoutMs { get; set; } #

Gets or sets the chaos query timeout ms value.

public Int32 ChaosMaxServerIpsToQuery { get; set; } #

Gets or sets the chaos max server ips to query value.

public Dictionary<String, String> ChaosVersionByServer { get; set; } #

Gets or sets the chaos version by server value.

public Dictionary<String, String> ChaosHostnameByServer { get; set; } #

Gets or sets the chaos hostname by server value.

public Func<IPAddress, Byte[], CancellationToken, Task<Byte[]>> QueryUdpOverride { get; set; } #

Optional override for raw UDP DNS queries (tests/offline).

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

Gets or sets the asn by ip value.

public Int32 AsnDistinctCount { get; set; } #

Gets or sets the asn distinct count value.

public Func<String, Task<Nullable<Int32>>> LookupAsnOverride { get; set; } #

Override for ASN lookup in tests.

public Int32 AsnLookupTimeoutMs { get; set; } #

Timeout (ms) for best-effort ASN lookups when no override is set.

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

Gets the assessments value.

{{ include "footer" }}