Garyandmultica-agent d66dcbe067
CI / test (pull_request) Waiting to run
feat: implement CLI flags and configuration handling (HAN-382)
- Created internal/config/config.go with Config struct containing all 15 CLI flags
- Added ParseQueryType() for validating record types (A, AAAA, NS, CNAME, MX, TXT, SOA, PTR, ANY)
- Added ParseUDPSize() with validation (512-4096)
- Added ParseMaxDepth() with validation (1-100)
- Added ParseRetries() with validation (0-10)
- Added Validate() for cross-field validation (e.g., --always-tcp requires --allow-tcp)
- Added GetDomain() for validating the required positional argument
- Added PrintUsage() displaying all flags with --no- variants for display options
- Updated cmd/exploredns/main.go with flag definitions using the standard flag package
- Proper flag parsing and config population
- Manual parsing of debug level (supports -dd)
- Support for --no-* display flags (e.g., --no-show-progress)
- Config validation before execution
- Integration with traversal engine using dns.QueryConfig and traverse.TraverserConfig
- Clean error handling with descriptive messages

All flags implemented:
- --type TYPE (default A)
- --root-server HOST
- --all-root-servers
- --root-aaaa
- --follow-aaaa
- --udp-size SIZE (default 2048)
- --allow-tcp (default true)
- --always-tcp
- --max-depth DEPTH (default 20)
- --retries TIMES (default 2)
- --fast (default true)
- --verbose, -v
- --debug, -d (stackable: -dd)
- --quiet, -q
- --show-progress, --no-show-progress
- --show-resolves, --no-show-resolves
- --show-servers, --no-show-servers
- --show-versions, --no-show-versions
- --show-all-stats, --no-show-all-stats
- --show-results, --no-show-results
- --show-summary-results, --no-show-summary-results

Validation: Invalid inputs produce clear error messages, exploredns --help displays usage with all options, all existing tests pass
Co-authored-by: multica-agent <github@multica.ai>
2026-06-07 16:36:48 +10:00
2026-06-05 04:49:39 +00:00
2026-06-05 04:49:39 +00: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%