368f200d23
CI / test (pull_request) Failing after 3m40s
Phase 4.1: Error handling, edge cases, and robustness
- Exponential backoff retry logic (100ms, 200ms, 400ms... capped at 2s)
  replacing fixed 100ms delay between retries
- Explicit REFUSED and NOTIMP response types (RespREFUSED, RespNOTIMPL)
  surfaced as terminal results with user-visible messages
- CNAME loop detection: walking the ancestor referral chain before
  following a CNAME prevents infinite recursion; produces RespCNAMELoop
- DNAME record support: synthesize CNAME target from DNAME mapping when
  the server omits the RFC 6672 synthesized CNAME record
- ErrorMessage field on Response for surfacing error details to users
- Fix resolveGlueViaSystem timeout bug: deadline.Sub(deadline) was
  always 0; replaced with time.Until(deadline)
- DNAME records excluded from hasFinalAnswer so DNAME-only responses
  are correctly classified as RespCNAMEFollow
- Text and JSON output updated with labels for all new response types
- Tests: CNAME loop (2-step and direct), REFUSED, NOTIMP, graceful
  degradation (partial and total server failure), DNAME synthesis,
  IsNameInChain, backoffDelay, ResponseClassification strings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 03:11:46 +10:00
…

ExploreDNS

DNS reconnaissance and exploration tool.

Build

go build -o bin/exploredns ./cmd/exploredns

Or use the Makefile:

make build

Usage

./bin/exploredns <domain>

Development

make test    # run tests
make lint    # run go vet
make clean   # remove build artifacts

Project Structure

cmd/exploredns/        CLI entry point
internal/dns/          DNS query operations
internal/traverse/     DNS tree traversal
internal/fingerprint/  DNS server fingerprinting
internal/output/       Result formatting and output
internal/config/       Configuration management

License

MIT

S
Description
ExploreDNS is a comprehensive DNS traversal tool that explores every possible resolution path for a domain — from the root servers all the way down — just like a real iterative resolver, but without stopping at the first answer. It follows every referral exhaustively, collates all results, and presents them in a structured, human-readable (or JSON) report.
https://exploredns.hansenits.com
Readme GPL-3.0
14 MiB
2026-07-07 15:16:11 +00:00
Languages
Go 84.3%
HTML 14%
Shell 1.5%
Makefile 0.2%