Skip to content

Tool reference

mcp-dnstwist has one tool, fuzz_domain. It generates lookalike versions of a domain (typos, homoglyphs, bit flips, added or swapped characters, other TLDs) and checks which ones exist.

Sample outputs are real responses from dnstwist 20250130, captured on 2026-10-12 against example.com. Long lists are cut to a few entries and marked … N more.

fuzz_domain

Generate and analyze domain permutations to detect potential typosquatting, phishing, and brand impersonation

Parameter Type Required Default Notes
domain string yes Domain name to analyze (e.g., example.com)
nameservers string no "1.1.1.1" Comma-separated DNS servers: IPv4 addresses or DNS-over-HTTPS URLs such as https://cloudflare-dns.com/dns-query (default: 1.1.1.1)
threads number no 50 Number of parallel lookups (1-100)
format string (json / csv / list) no "json" Output format
registered_only boolean no true Show only registered domain permutations
mxcheck boolean no true Check whether each mail server would accept email for any address, so it could intercept mail sent to typos of your domain
ssdeep boolean no false Deprecated alias for lsh: "ssdeep" (ignored when lsh is set)
lsh string (ssdeep / tlsh) no Compare each permutation's web page with the original using a fuzzy hash (slow) to spot cloned phishing pages
whois boolean no false Look up WHOIS creation date and registrar for each domain (slower)
all_records boolean no false Return all DNS records instead of only the first of each type
fuzzers string[] no Only use these fuzzing algorithms (default: all) Values: addition, bitsquatting, cyrillic, homoglyph, hyphenation, insertion, omission, plural, repetition, replacement, subdomain, transposition, vowel-swap, various.
banners boolean no true Capture HTTP and SMTP server banners

What comes back

With format: "json" (the default), a list with one entry per domain. The first entry is the original domain (fuzzer: "*original"). Fields appear when dnstwist found data for them:

Field Meaning
domain, fuzzer The lookalike, and the algorithm that produced it
dns_a, dns_aaaa, dns_mx, dns_ns DNS records (only the first of each type unless all_records)
mx_spy With mxcheck: the mail server accepts mail for any address, so it could intercept email
banner_http, banner_smtp With banners: web and mail server banners
whois_created, whois_registrar With whois: registration date and registrar
ssdeep or tlsh With lsh: similarity score of the lookalike's web page to the original (named after the algorithm)

csv and list return dnstwist's text output unchanged.

A default scan of example.com returns about 110 registered lookalikes, roughly 24,000 characters. Turning on whois adds about 40%, so narrow the fuzzers for large domains.

Sample output (defaults): {"domain": "example.com"}
[
  {
    "banner_http": "cloudflare",
    "dns_a": [
      "104.20.23.154"
    ],
    "dns_aaaa": [
      "2606:4700:10::6814:179a"
    ],
    "dns_mx": [
      ""
    ],
    "dns_ns": [
      "elliott.ns.cloudflare.com"
    ],
    "domain": "example.com",
    "fuzzer": "*original"
  },
  {
    "banner_http": "nginx",
    "dns_a": [
      "103.168.172.37"
    ],
    "dns_mx": [
      "us1-smtp.messagingengine.com"
    ],
    "dns_ns": [
      "ns1.messagingengine.com"
    ],
    "domain": "exampler.com",
    "fuzzer": "addition"
  },
  {
    "banner_http": "cloudflare",
    "dns_a": [
      "104.21.23.31"
    ],
    "dns_aaaa": [
      "2606:4700:3030::6815:171f"
    ],
    "dns_ns": [
      "irena.ns.cloudflare.com"
    ],
    "domain": "example8.com",
    "fuzzer": "addition"
  },
  "… 108 more"
]
Sample output (WHOIS for two algorithms): {"domain": "example.com", "whois": true, "fuzzers": ["homoglyph", "bitsquatting"]}
[
  {
    "dns_a": [
      "!ServFail"
    ],
    "dns_ns": [
      "!ServFail"
    ],
    "domain": "dxample.com",
    "fuzzer": "bitsquatting",
    "whois_created": "2021-03-06",
    "whois_registrar": "GMO Internet Group, Inc. d/b/a Onamae.com"
  },
  {
    "dns_a": [
      "!ServFail"
    ],
    "dns_aaaa": [
      "!ServFail"
    ],
    "domain": "exa-ple.com",
    "fuzzer": "bitsquatting",
    "whois_created": "2021-04-17",
    "whois_registrar": "GMO Internet Group, Inc. d/b/a Onamae.com"
  },
  {
    "dns_a": [
      "!ServFail"
    ],
    "dns_aaaa": [
      "!ServFail"
    ],
    "dns_ns": [
      "!ServFail"
    ],
    "domain": "exqmple.com",
    "fuzzer": "bitsquatting",
    "whois_created": "2019-03-04",
    "whois_registrar": "Amazon Registrar, Inc."
  },
  "… 26 more"
]
Sample output (web-page similarity): {"domain": "example.com", "lsh": "tlsh", "fuzzers": ["vowel-swap"]}
[
  {
    "banner_http": "Apache",
    "dns_a": [
      "103.224.182.245"
    ],
    "dns_mx": [
      "park-mx.above.com"
    ],
    "dns_ns": [
      "ns1.abovedomains.com"
    ],
    "domain": "exemple.com",
    "fuzzer": "vowel-swap",
    "tlsh": 0
  },
  {
    "banner_http": "cloudflare",
    "dns_a": [
      "104.20.23.154"
    ],
    "dns_aaaa": [
      "2606:4700:10::6814:179a"
    ],
    "dns_mx": [
      ""
    ],
    "dns_ns": [
      "elliott.ns.cloudflare.com"
    ],
    "domain": "example.com",
    "fuzzer": "vowel-swap"
  },
  {
    "banner_http": "Kestrel",
    "dns_a": [
      "13.223.25.84"
    ],
    "dns_aaaa": [
      "2600:1f18:4ae:c605:dd5d:b838:5816:d7fb"
    ],
    "dns_ns": [
      "nsg1.namebrightdns.com"
    ],
    "domain": "examplo.com",
    "fuzzer": "vowel-swap",
    "tlsh": 11
  },
  "… 6 more"
]
Sample output (plain list of all permutations): {"domain": "example.com", "registered_only": false, "format": "list", "fuzzers": ["omission"]}
eample.com
examle.com
exampe.com
exampl.com
exaple.com
exmple.com
xample.com