melvinsh / DNSValidator

Filters a list of IPv4 DNS Servers by verifying them against baseline servers, and ensuring accurate responses.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DNS Validator

Forked from https://github.com/vortexau/dnsvalidator. This version is much less feature rich than the original. However, it doesn't look like the original is being maintained & there is a possibility that it will not return an output (see: vortexau/dnsvalidator#27)

Filters a list of IPv4 DNS servers by verifying them against baseline servers, and ensuring accurate responses.

Python 3.9 License

Installation:

❯ git clone https://github.com/frost19k/DNSValidator.git
❯ cd DNSValidator/
❯ pip3 install .

Usage:

CLI:

Argument Description
-t --threads Specify the number of concurrent threads (Default: 2)
-i --input Specify the file name containing Public DNS Servers (Default: https://public-dns.info/)
-o --output Specify the file name to save the validated DNS Servers (Required)

Example:

❯ dnsvalidator -t 24 -i nameservers.txt -o resolvers.txt

Docker:

From Docker Hub:

❯ docker pull frost19k/dnsvalidator

OR

Build it yourself:

❯ git clone -b DNSValidator https://github.com/frost19k/Dockerfiles.git ./dnsvalidator
❯ cd ./dnsvalidator
❯ docker buildx build -t dnsvalidator -f Dockerfile .

Run the container:

❯ docker run -it --rm \
  -v "${PWD}":"/output" \
  dnsvalidator -t 100 -o resolvers.txt

Caveats:

  • WARNING Keep the thread count to a reasonable level and/or use a VPS/VPN appropriately. Pushing the thread count too high can make it look like you are attempting to attack DNS servers, resulting in network level DNS blocks from your ISP.
  • Only IPv4 DNS Resolvers are validated at the current time. IPv6 resolvers are skipped.

About

Filters a list of IPv4 DNS Servers by verifying them against baseline servers, and ensuring accurate responses.

License:GNU General Public License v3.0


Languages

Language:Python 100.0%