Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


A Python 3 Heroku-hostable web-application wrapping the excellent dnstwist.

Build Status



In the author's words, dnstwist helps you "...find similar-looking domains that adversaries can use to attack you..."

This project, dnstwister, gives you access to the power of dnstwist via a convenient Heroku-deployable Python flask-based web interface and offers csv/json reports and a fully featured RESTful API.

This project uses a modified version of dnstwist, in dnstwister/dnstwist.

I have kept the original dnstwist README and LICENCE but I have applied an "Unlicense" to dnstwister.

Though the licences are different (dnstwist uses an Apache licence), this is an acceptable use of dnstwist in my project.

The SaaS offering grew out of this repository, but as of October 2019 the core code that runs was forked from this dnstwister repository into a private repository. This was done to:

  • Clearly separate the code required to run a web-scale SaaS offering from that required to host your own dnstwister instance - for instance email gateways and FaaS endpoints.

  • Allow for the introduction of my own IP beyond that of the core dnstwist module authored by elceef.

To ensure I am respecting the dnstwist licence the dnstwist module embedded in this repository will always match that used in

The current version of dnstwist used in this repository and in is available here, including the original Apache LICENCE.

Pull requests against this repository may or may not be merged into this repository and/or the private repository, as appropriate.


Developing and running dnstwister

You need Python 3.7.6.

Once-off setup:

pip install pipenv
pipenv install --dev


pipenv run python

And browse via http://localhost:5000

Running dnstwister using Docker

If you don't have Docker installed, you can click here for Docker CE, and follow the installation steps.

Building and Running locally

# Cloning latest source code
git clone

# Changing directory
cd dnstwister

# Building dnstwister image using Dockerfile
docker build -t dnstwister .

# Running the application inside a container
docker run -td -p 5000:5000 --name myapp dnstwister

Now, go to http://localhost:5000 using any browser to use dnstwister.

Fetching pre-built image

Alternatively, you can pull the pre-built image from DockerHub, and run locally. This way, you wouldn't have to wait for the build time.

docker pull dnstwister/dnstwister:2.9.3
docker run -td -p 5000:5000 --name myapp dnstwister/dnstwister:2.9.3

Now, go to http://localhost:5000 using any browser to use dnstwister.



pipenv run py.test

Say hello

I'd love to hear your feedback so email me, fire off a tweet in my general direction! :)

You can’t perform that action at this time.