Domain Detective

API Reference

Class

WebStaticScanAnalysis

Namespace DomainDetective
Assembly DomainDetective
Implements

Performs a static (non-browser) scan of a web page to collect resource metadata and host TLS summaries.

Inheritance

  • Object
  • WebStaticScanAnalysis

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

Methods

public async Task Analyze(String url, InternalLogger logger, CancellationToken cancellationToken = null) #
Returns: Task

Executes the analyze operation.

Parameters

url System.String requiredposition: 0
logger DomainDetective.InternalLogger requiredposition: 1
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
ApplyDnsTechDetections(System.String arg1, System.Threading.CancellationToken arg2) #

Performs minimal DNS TXT detection for well-known verification records to add technology evidence.

Parameters

arg1 System.String required
arg2 System.Threading.CancellationToken required
ApplyHeaderCookieMetaRules(System.Net.Http.HttpResponseMessage arg1, System.String arg2) #

Applies optional JSON header/cookie/meta rules (when loaded) to infer technologies.

Parameters

arg1 System.Net.Http.HttpResponseMessage required
arg2 System.String required
ApplyPathAndDomainRules() #

Applies optional JSON path/domain/body rules (when loaded) to infer technologies.

DetectTechFromHeadersAndBody(DomainDetective.HttpAnalysis arg1, System.String arg2) #

Applies heuristic detections from headers/body beyond the rules (e.g., server/cookie hints and generator meta).

Parameters

arg1 DomainDetective.HttpAnalysis required
arg2 System.String required

Properties

public String Subject { get; set; } #

Gets or sets the subject value.

public TimeSpan Timeout { get; set; } #

Gets or sets the timeout value.

public Int32 MaxResources { get; set; } #

Gets or sets the max resources value.

public Int32 Concurrency { get; set; } #

Gets or sets the concurrency value.

public Int32 DiscoveryConcurrency { get; set; } #

Maximum parallel header fetches for discovered resources; 0 defers to Concurrency.

public Int32 CssConcurrency { get; set; } #

Maximum parallel CSS fetches/processing; 0 defers to Concurrency.

public Int32 TlsConcurrency { get; set; } #

Maximum parallel TLS probes; 0 defers to Concurrency.

public Int32 DnsConcurrency { get; set; } #

Maximum parallel DNS/RDAP enrichments; 0 defers to Concurrency.

public Boolean RespectRobots { get; set; } #

Gets or sets the respect robots value.

public Boolean EnableThreatIntel { get; set; } #

Gets or sets the enable threat intel value.

public Boolean SkipThirdParty { get; set; } #

When true, skip third-party resources; only first-party (same registrable domain) are fetched.

public Int32 MaxResourcesPerHost { get; set; } #

Maximum number of resources to fetch per host. Applies to initial and CSS-discovered resources.

public DnsConfiguration DnsConfiguration { get; set; } #

DNS configuration used for host/IP enrichment when needed.

public Func<String, String> GetRegistrableDomain { get; set; } #

Optional function to obtain the registrable domain (PSL).

public String TechRulesPath { get; set; } #

Optional path to a JSON rules file defining additional tech detection patterns.

public Int32 LinkMaxDepth { get; set; } #

Gets or sets the link max depth value.

public Int32 LinkMaxPages { get; set; } #

Gets or sets the link max pages value.

public Boolean LinkFirstPartyOnly { get; set; } #

Gets or sets the link first party only value.

public Int32 LinkConcurrency { get; set; } #

Gets or sets the link concurrency value.

public Boolean LinkOnly { get; set; } #

When true, skips static resource discovery and performs link checks only.

public HttpAnalysis MainHttpAnalysis { get; set; } #

Gets or sets the main http analysis value.

public Uri MainFinalUri { get; set; } #

Final URI of the main document after redirects.

public String PrimaryRegistrableDomain { get; set; } #

Registrable domain derived from the scanned URL host.

public String PageTitle { get; set; } #

Extracted HTML page title when available.

public List<StaticRequest> Requests { get; } #

Gets the requests value.

public Dictionary<String, StaticHost> Hosts { get; } #

Gets the hosts value.

public Dictionary<String, Int64> BytesByType { get; } #

Gets the bytes by type value.

public HashSet<String> TechDetections { get; } #

Technologies detected via compiled rules and optional JSON extensions.

public HashSet<String> TrackersUsed { get; } #

Tracker domains used during the scan (suffix-based, curated list).

public Int32 CookiesSet { get; set; } #

Total number of Set-Cookie headers observed across resource requests.

public Dictionary<Int32, List<Int32>> RequestAdjacency { get; } #

Adjacency list of request graph: parent RequestId -> list of child RequestIds.

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

Gets the assessments value.

public IReadOnlyList<RecommendationAdvice> Recommendations { get; } #

Represents the recommendations value.

public List<TechDetectionDetail> TechDetails { get; } #

Detailed records for each technology detection.

public CookieAttributeSummary CookieSummary { get; } #

Aggregated cookie attribute posture for first-party cookies observed.

public CorsSummary Cors { get; } #

Aggregated CORS headers posture for first-party responses.

public ServerTimingSummary ServerTiming { get; } #

Aggregated Server-Timing metrics observed on first-party responses.

public List<LinkHint> LinkHints { get; } #

Link hints discovered in the main document (preconnect/dns-prefetch/preload/prefetch).

public List<String> RobotsSitemaps { get; } #

Sitemaps referenced by robots.txt for the primary host (no crawling).

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

Counts of structured data schema types found in application/ld+json blocks.

public List<TrackerDetection> TrackerDetails { get; } #

Structured tracker detections with evidence instead of plain strings.

public List<BrokenResource> BrokenResources { get; } #

List of broken resources (HTTP status >= 400 or failed) discovered during the scan.

public List<LinkFanOutNode> TopLinkFanOut { get; } #

Top nodes with the highest number of link-derived children.

public Dictionary<String, RedirectPairStat> RedirectPairs { get; } #

Redirect pair matrix keyed as "fromHost->toHost".

public List<RedirectPairStat> TopRedirectPairs { get; } #

Top redirect pairs ordered by count.

{{ include "footer" }}