DNSBench

DNSBench is a simple command line utility that benchmarks DNS servers to determine the fastest round-trip time out of each of them. DNS lookup is a pivotal part of today's internet as DNS servers are the phonebooks of the internet. Each time you visit a webpage, your browser sends a query to a DNS server and it returns the IP address of the website's origin server you are trying to visit. If this DNS resolving process takes a long time, this can result in a degraded experience for the user.

Compiling from source

If you are on another platform, compile the binary yourself to try it out:

sh git clone https://github.com/tropicbliss/dnsbench cd dnsbench cargo build --release

Compiling from source requires the latest stable version of Rust. Older Rust versions may be able to compile buckshot, but they are not guaranteed to keep working.

The binary will be located in target/release.

Alternatively:

sh cargo install dnsbench

Usage

``` USAGE: dnsbench.exe [OPTIONS] --domain-name --file

OPTIONS: -a, --attempts Number of requests to run for each DNS server [default: 10] -d, --domain-name Dummy domain name to lookup -f, --file File containing newline delimited DNS addresses to measure -h, --help Print help information -r, --rate-limit Rate limited delay between each query of the same DNS server in seconds [default: 5] -V, --version Print version information ```

Before running this program, you must create a file that contains the IP addresses of the DNS servers you want to benchmark. Each IP address should be on a separate line.

```

ip.txt

1.1.1.1 8.8.8.8 ```

Example

sh ./dnsbench -d www.wikipedia.org -f ip.txt