# dnsx: Run DNS Queries and Brute-Force Subdomains

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/projectdiscovery-dnsx
Generated for open source discovery and AI-assisted research.

dnsx is a Go command-line DNS toolkit built on ProjectDiscovery’s retryabledns library. It resolves and probes domains with custom resolvers, supports DNS record queries and subdomain brute-forcing, and filters wildcard results.

GitHub: https://github.com/projectdiscovery/dnsx
OSRepos URL: https://osrepos.com/repo/projectdiscovery-dnsx

## Summary

dnsx is a Go command-line DNS toolkit built on ProjectDiscovery’s retryabledns library. It resolves and probes domains with custom resolvers, supports DNS record queries and subdomain brute-forcing, and filters wildcard results.

## Topics

- go
- cli
- security-tools
- dns-resolution
- dns-bruteforcing
- wildcard-filtering

## Repository Information

Last analyzed by OSRepos: Mon Oct 26 2026 07:28:33 GMT+0000 (Western European Standard Time)
Detail views: 0
GitHub clicks: 0

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Overview

dnsx is a fast, multi-purpose DNS toolkit built on ProjectDiscovery’s retryabledns library. It runs DNS queries against supplied hosts or domains, using default or user-provided resolvers, and helps reduce noisy results with wildcard filtering.

The Go CLI is aimed at security practitioners and developers working with domain discovery and DNS reconnaissance. It accepts input from files or standard input, so it can fit into shell pipelines and larger ProjectDiscovery workflows.

## Key Features

- Query common DNS record types, including A, AAAA, CNAME, MX, TXT, PTR, and SOA.
- Resolve host lists or brute-force subdomains from domain and wordlist inputs.
- Use custom resolvers over supported TCP, UDP, DNS-over-HTTPS, and DNS-over-TLS formats.
- Filter wildcard DNS responses manually for a domain or automatically across mixed-domain input.
- Emit JSONL, raw responses, response-only output, or fields formatted with a custom template.
- Probe DNS status codes and optionally retrieve CDN and ASN information.
- Use dnsx from Go programs through its library package.

## Use Cases

- Security teams can resolve passive subdomain lists to identify active hosts before further assessment.
- Reconnaissance workflows can brute-force likely subdomains for one or more target domains using wordlists or targeted keywords.
- Operators can query selected record types or status codes to investigate DNS configuration and response behavior.
- Teams processing mixed-domain lists can apply automatic wildcard filtering to reduce false positives.
- Go developers can integrate DNS lookup and query operations into their own tools through the library.

## Our Take

dnsx is an actively maintained, focused DNS toolkit with a clear fit in command-line reconnaissance pipelines and a healthy recent release and contribution cadence.

**Good fit if:**
- You need DNS resolution, record queries, or subdomain brute-forcing in a Go CLI or shell pipeline.
- Wildcard filtering and configurable resolvers are important to your DNS workflow.
- You want an MIT-licensed tool with recent releases and contributions from a broad contributor group.

**Look elsewhere if:**
- You need a graphical interface or a service-oriented DNS platform rather than a command-line tool and Go library.
- You cannot use the Go version required by the current project configuration.
- Your network blocks or degrades high-volume DNS/UDP traffic and you cannot adjust your resolver or network setup.

## Project Health

| Signal | Value |
|---|---|
| Status | **Active**: regular commits and releases |
| Last commit | 2026-10-26 (today) |
| Commits, last 90 days | 33 |
| Releases, last 12 months | 3 (latest v1.3.1, 2026-08-31) |
| Contributors | 34 (top contributor: 60% of commits) |
| Issues closed, last 90 days | 12 (typically closed in 3 days) |
| Pull requests merged, last 90 days | 22 (typically merged in 0 days) |
| Project age | 5 years |

Checked on 2026-10-26 with the GitHub API.

## Project Facts

- Language: Go
- License: MIT
- Stars: 2.9k
- Forks: 327
- Topics: cli, dns-bruteforcer, dns-client, dns-records, dns-resolution, hacktoberfest, wildcard-filtering
- Website: https://docs.projectdiscovery.io/tools/dnsx
- Archived: no

## What You Need

Detected in the repository:

- Go 1.26.10 or newer (from go.mod)
- A Dockerfile, so it can run in a container
- Automated checks on GitHub Actions

## Getting Started

Install the latest version with Go:

```sh
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
```

Then try `dnsx -h` to see available options. See the [README](https://github.com/projectdiscovery/dnsx#readme) for usage examples and configuration details.

## License in Plain Words

**MIT** (permissive).

- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the copyright and license notice
- Share your changes: no

A summary, not legal advice: the LICENSE file is what applies.

## Considerations

The project configuration requires Go 1.26.10 to install. The README also warns that VPN operators may filter high DNS/UDP traffic, which can cause packet loss. DNS brute-forcing and resolution are separate input modes and cannot be combined in one run; manual wildcard filtering also has constraints, including its single-domain input flow.