Skip to content

io7m-com/flail

Repository files navigation

flail

Maven Central Maven Central (snapshot) Codecov Java Version

com.io7m.flail

JVM Platform Status
OpenJDK (Temurin) Current Linux Build (OpenJDK (Temurin) Current, Linux)
OpenJDK (Temurin) LTS Linux Build (OpenJDK (Temurin) LTS, Linux)
OpenJDK (Temurin) Current Windows Build (OpenJDK (Temurin) Current, Windows)
OpenJDK (Temurin) LTS Windows Build (OpenJDK (Temurin) LTS, Windows)

flail

The flail package provides a command-line DNS server stress testing tool. The tool is a paper-thin wrapper around the excellent DNSJava library.

Features

  • Command line tool for executing large numbers of requests against a DNS server.
  • ISC license.

Usage

Place a list of hostnames, one per line, in a file called names.txt.

$ cat names.txt
debian.org
example.com
freebsd.org
www.debian.org
www.example.com
www.freebsd.org

Assuming the DNS server under test is at dns.example.com on port 53:

java -jar flail.jar names.txt dns.example.com 53

The program will make random requests for A records for all the names in names.txt as quickly as possible. The program will produce lines such as:

17:22:52.483 [main] INFO com.io7m.flail.FlailMain -- requests: 280/280/0 (total/successes/failures)
17:22:52.544 [main] INFO com.io7m.flail.FlailMain -- requests: 290/290/0 (total/successes/failures)
17:22:52.604 [main] INFO com.io7m.flail.FlailMain -- requests: 300/300/0 (total/successes/failures)
17:22:52.663 [main] INFO com.io7m.flail.FlailMain -- requests: 310/310/0 (total/successes/failures)
17:22:52.724 [main] INFO com.io7m.flail.FlailMain -- requests: 320/320/0 (total/successes/failures)
17:22:52.784 [main] INFO com.io7m.flail.FlailMain -- requests: 330/330/0 (total/successes/failures)
17:22:52.844 [main] INFO com.io7m.flail.FlailMain -- requests: 340/340/0 (total/successes/failures)
17:22:52.905 [main] INFO com.io7m.flail.FlailMain -- requests: 350/350/0 (total/successes/failures)

The program will run indefinitely until it is interrupted.