PAGES
← all tools
◆ Reconnaissance & OSINT

dnsrecon

1.6.1 open-source

DNSRecon is a Python script that enumerates DNS records, checks for zone transfers, brute forces subdomains, and supports security assessment and network troubleshooting.

Summary

dnsrecon is an open-source command-line tool for DNS reconnaissance, free to use, and run from a terminal via uv run dnsrecon or its bundled REST APIREST APIA web API design style where clients interact with resources over HTTP using standard methods like GET, POST, and DELETE, giving cyber tools a predictable, language-agnostic way to integrate with external services. for scripted access. It covers zone transfer checks, general record enumeration (MX, SOA, NS, A, AAAA, SPFSPFAn email authentication standard that lets a domain owner publish, via DNS, which mail servers are authorized to send on its behalf, so receiving servers can reject spoofed senders., TXT, CAA), SRVSRVA DNS record type that advertises the hostname and port for a specific service, letting clients discover endpoints without hardcoded addresses. and TLDTLDThe rightmost label in a domain name (e.g., .com, .gov, .uk), maintained by IANA's root zone. Cyber tools filter or pivot on TLDs to scope scans, flag suspicious registrations, or classify traffic by geography or type. expansion, wildcard detection, subdomain brute-forcing with wordlists, PTR lookups over a CIDRCIDRA notation for a block of IP addresses, such as 10.0.0.0/24. The number after the slash says how many leading address bits identify the network., and cache-snooping, with optional Shodan netblock expansion layered on SPF and WHOIS results. It's aimed at penetration testers and bug-bounty researchers mapping a domain's DNS footprint before deeper assessment, and its own README frames it as a Python re-implementation of an older Ruby recon script rather than a competitor to any named tool. Started in 2010 and still active, with 90 contributors and 16 releases in the tracked window, the most recent only 53 days old.

DNSRecon is a Python script that enumerates DNS records, checks for zone transfers, brute forces subdomains, and supports security assessment and network troubleshooting.

How dnsrecon helps

Which DNS records exist for this domain right now, across mail, name, address and text records?

queries and reports SOA, NS, MX, A, AAAA, SPF, TXT and CAA records in one pass, giving a baseline footprint before deeper testing

Which subdomains actually resolve, beyond the ones already known?

brute-forces host names from a wordlist against A and AAAA lookups and lists the ones that return an address

Will a positive brute-force hit turn out to be a wildcard false positive?

checks whether the domain resolves any random hostname before brute-forcing, so wildcard responses can be told apart from real hosts

Which IP addresses in a block I control have PTR records pointing somewhere unexpected?

walks a given IP range or CIDR doing reverse lookups and reports the hostname each address resolves back to

Has a given internal or resolved hostname already been cached by a DNS server, revealing that someone recently queried it?

checks a target name server for cached A, AAAA and CNAME entries against a supplied list of hosts, without triggering a fresh query

all 7 features, with the evidence for each →

Languages

Not documented

Features

7 capabilities across 2 capability groups · 4 backed by code, an API document or a real run

Built from dnsrecon's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

  • dnsrecon covers 2 of the 13 network discovery and scanning capabilities we track.

What dnsrecon offers you

  • Command-line interface2
  • REST API1
DNS record enumeration 2 features Network discovery and scanning since 2014
Standard DNS enumeration verified Queries a target domain for common record types including SOA, NS, MX, TXT, and SRV, and attempts DNSSEC and zone-transfer checks. 8 releases · 12 other sources · first seen Jul 2014

Shared capability: DNS record enumeration

release 8 total

  • Adds -iL flag (nmap-style) to pass a file containing a list of input domains for bulk enumeration. 1.3.0 · Oct 2024 · source · release history
  • Improved Zone Transfer and PTR tests for better reliability during reconnaissance. 1.1.0 · Apr 2022 · source · release history
  • Adds Yandex subdomain enumeration module via the yandex enumerator integration 0.10.0 · Feb 2021 · source · release history
  • Adds new check_nxdomain_hijacking detection logic to identify misconfigured NXDOMAIN responses 0.10.0 · Feb 2021 · source · release history
  • Adds --multiple_resolvers capability to specify multiple DNS resolvers for robust lookups 0.10.0 · Feb 2021 · source · release history
  • Adds --disable_checks flag to disable specific DNS validation checks during enumeration 0.10.0 · Feb 2021 · source · release history

docs

  • DNS reconnaissance tool that enumerates DNS records, performs zone transfers, brute-forces subdomains, and checks cached records.

we ran it 10 total

  • Exit status 0, returning SOA, NS, MX, and TXT records for ctk.test; the TXT record contains the value ctk-fixture-marker-alpha. DNSSEC returned no answer and no SRV records were found. Aug 2026 · the full run
  • The tool returned four records for ctk.test: an SOA and NS both pointing to ns1.ctk.test (192.0.2.53), an MX record for mail.ctk.test (192.0.2.20), and a TXT record containing… Aug 2026 · the full run
  • The tool resolved SOA, NS, MX, and TXT records for ctk.test but found no SRV records and no DNSSEC answer. Aug 2026 · the full run
  • The tool resolved SOA, NS, MX, and TXT records for ctk.test but found no DNSSEC answer and no SRV records. The Whois lookup ran but returned no IP ranges, so no reverse-lookup expansion occurred. Aug 2026 · the full run
  • The tool warned immediately that --shodan-active has no effect without --shodan also being supplied, so active validation did not run. Aug 2026 · the full run
  • The tool resolved SOA, NS, MX, and TXT records for ctk.test, identifying ns1.ctk.test (192.0.2.53), mail.ctk.test (192.0.2.20), and a TXT value of ctk-fixture-marker-alpha. Aug 2026 · the full run

example

  • Enumerate DNS records using Bing as the source instead of only default sources. dnsrecon -d example.com -b 0.8.11 · Oct 2017 · source
Multi-target netblock scanning shipped Allows scanning multiple IP ranges or /24 subnets for DNS records against a target domain in a single execution. 1 release · 1 other source · first seen Jun 2022

Shared capability: DNS record enumeration

release

  • Supports scanning multiple IP ranges in a single execution. 1.1.1 · Jun 2022 · source · release history

example

  • Scan multiple /24 subnets for DNS records against a target domain. dnsrecon -d example.com -r 192.168.1.0/24,10.0.0.0/24 1.1.1 · Jun 2022 · source
Attack surface inventory 1 feature Network discovery and scanning since 2026
Shodan integration for netblock enumeration verified Queries Shodan for hosts within netblocks discovered via SPF or Whois lookups, with optional active validation that resolves discovered names to confirm they still belong to the queried netblock. 1 release · 6 other sources · first seen Feb 2026

Shared capability: Attack surface inventory

release

  • Adds Shodan support for netblock expansion during DNS enumeration, with API enhancements to leverage it. 1.6.0 · Feb 2026 · source · release history

docs

  • darkoperator / dnsrecon Public Please reload this page . Notifications Fork 578 Star 1.6.0 L1ghtn1ng released this 28 Feb 20:46 · 174 commits to master since this release 1.6.0 5c6fc37 [1.6.0] - 2026-02-28 Added Added Shodan support for netblock expansion during DNS enumeration and API enhancements to leverage it… seen Aug 2026 · source

command line

  • --shodan-key — Shodan API key. If omitted, SHODAN_API_KEY environment variable is used. 1.6.0 · Feb 2026 · command-line history
  • --shodan — Use Shodan to query netblocks discovered via SPF (-s) and/or Whois (-w) during standard enumeration. 1.6.0 · Feb 2026 · command-line history
  • --shodan-active — Actively validate Shodan-discovered names by resolving them and confirming they still match the queried netblock. 1.6.0 · Feb 2026 · command-line history

we ran it

  • The tool resolved SOA, NS, MX, and TXT records for ctk.test but found no SRV records and no DNSSEC answer. Aug 2026 · the full run
  • The tool warned immediately that --shodan-active has no effect without --shodan also being supplied, so active validation did not run. Aug 2026 · the full run
Other / not yet classified 4 features Features we have not matched to a capability yet. A suggested match is marked.
API server with rate limiting and auto-reload verified Exposes the tool's functionality via an API server that supports configurable per-minute or per-hour rate limits and an automatic-reload mode for development. 3 releases · 6 other sources · first seen Jul 2025

Also counts toward: Command-line interface, REST API

release

  • REST API now accepts only bundled wordlists or files within paths defined by DNSRECON_WORDLIST_DIRS 1.6.1 · May 2026 · source · release history
  • Restricts REST API wordlist access to bundled lists or files within directories specified by DNSRECON_WORDLIST_DIRS environment variable 1.6.1 · May 2026 · source · release history
  • New REST API for DNSrecon, launched via restdnsrecon.py, enables programmatic access to recon capabilities over HTTP. 1.5.0 · Jul 2025 · source · release history

docs

  • darkoperator / dnsrecon Public Please reload this page . Notifications Fork 578 Star 1.6.1 L1ghtn1ng released this 23 May 09:21 · 76 commits to master since this release 1.6.1 144ec5b [1.6.1] - 2026-05-23 Security Hardened REST API wordlist handling so requests can only use bundled wordlists or files under directories… seen Aug 2026 · source
  • darkoperator / dnsrecon Public Please reload this page . Notifications Fork 578 Star File tree Expand file tree Collapse file tree Open diff view settings Filter options .github/workflows DNSrecon.yml Expand file tree Collapse file tree Open diff view settings Collapse file .github/workflows/DNSrecon.yml Copy file… seen Aug 2026 · source
  • darkoperator / dnsrecon Public Please reload this page . Notifications Fork 578 Star File tree Expand file tree Collapse file tree Open diff view settings Filter options dnsrecon api.py Expand file tree Collapse file tree Open diff view settings Collapse file dnsrecon/api.py Copy file name to clipboard Expand all… seen Aug 2026 · source

command line

  • --reload — Enable automatic reload used during development of the api 1.5.0 · Jul 2025 · command-line history
  • --rate-limit — Set API rate limit (e.g., "10/minute", "100/hour"), default is 5/minute 1.5.0 · Jul 2025 · command-line history

example

  • Stand up the DNSrecon REST API locally so other tools or scripts can query it over HTTP. python restdnsrecon.py 1.5.0 · Jul 2025 · source
DNS recursion control verified Allows the recursion-desired flag to be disabled on outgoing DNS queries. 1 other source · first seen Dec 2025

Also counts toward: Command-line interface

command line

  • --disable_recurs — Disable recursion desired flag in queries. 1.5.3 · Dec 2025 · command-line history
CLI version flag shipped Displays the program version via the --version or -V flag. 1 release · first seen Apr 2021

release

  • Adds the --version (short: -V) flag for displaying the program version 0.10.1 · Apr 2021 · source · release history
SQLite result storage shipped suggested Saves queried domain names into a local SQLite database for persistence. 1 release · first seen Apr 2021

Suggested capability: Attack surface inventory. This is our guess, not confirmed.

release

  • Writes queried domain names into a SQLite database table under the domain column 0.10.1 · Apr 2021 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for dnsrecon, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail dnsrecon puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

23 entries

  1. October 20262
  2. September 20262
  3. August 20265
  4. May 20261
  5. February 20261
  6. December 20252
  7. September 20251
  8. July 20252
  9. October 20241
  10. June 20221
  11. April 20221
  12. April 20211
  13. February 20211
  14. October 20171
  15. July 20141
    Show

    23 entries

    Project health

    Issue, contributor and maintainer activity in darkoperator/dnsrecon, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 7 −1 vs prior 12 months
    2. Maintainers 2 +2 joined · −3 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close 18 days first maintainer reply 18 days
    6. Open backlog 1 of 131 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 1
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 3,070
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →