The dpt-tool is a utility written in Python 3 designed to test various basic properties of public DNS servers. It provides a simple way to examine and analyze the supported features of these servers through a command-line interface.
To install the dpt-tool, use the following command:
pip install -r requirements.txt
This will resolve the necessary dependencies for the tool to run.
To use the tool, you can follow the example commands below.
python main.py -c all
python main.py -c udp_payload_size, do_bit -s '{"Cloudflare": ["1.1.1.1", "1.0.0.1"], "Google Public DNS": ["8.8.8.8"]}' -o output.txt
The available test options are:
opt_record
: Support OPT Record (RFC 6891)udp_payload_size
: Default UDP payload sizeclient_subnet
: Client Subnet (RFC 7871)nsid
: NSID (RFC 5001)version_bind
: version.bind CHAOS/TXTserver_id
: id.server CHAOS/TXTdo_bit
: DO bitresponse_validation
: Response validationdnskey_algorithm
: DNSKEY algorithms (RFC 8624)dot
: DNS-over-TLS (RFC 7858)doh
: DNS-over-HTTPS (RFC 8484)0x20
: 0x20 encodingede
: EDNS Extended Errors (EDE)
For specifying the DNS servers, the input must be in JSON format containing a dictionary of server names mapped to a list of IP addresses for each server.
Feedback and contributions are welcome! If you encounter any issues or have ideas for improvements, please feel free to open an issue or a pull request on the GitHub repository.