Domainitor, an easy-to-use tool, automates the generation of domain names expiry reports, which helps to keep track of the expiry of huge domain assets.
It takes a supplied list of domain names for enumeration, processes each domain name, prints result to the screen, and creates a greppable CSV report file at the end of a successful run, all seamlessly.
The generated report file may serve as documentation or for analysis purposes.
Relatively fast, generates a report of 500 domains in ~5 minutes on a low-end PC. When used with its concurrency option, the program runs faster depending on the Internet speed and the running system’s capability.
Background
It’s no longer news that a curious web designer surprisingly bought Google’s second-level domain name for Argentina (google.com.ar) for just 5 USD in April 2021. Perhaps due to negligence. That’s just one out of many cybersquatting occurrences happening around.
Domain names are intangible assets and, as such, fall under the category of intellectual property and are crucial to virtually any internet service since its inception. And if lost or mismanaged, it could wreak havoc on the owner in a situation where a brand or critical service depends on it.
Damages from lost or mismanaged domain names could range from loss of money or brand reputation to misuse of the brand asset or exorbitant renewal price for the affected domain name. It is, however, imperative that we monitor and adequately protect these assets from all forms of potential loss to which they are constantly exposed.
Composition
Composed of Bash (100%), this tool is simply a wrapper for the famous whois tool and other Unix-like utilities. Whois generates information about each domain name or IP given as standard input. Domainitor builds on the strength to create a more robust utility.
Usage
This program assumes your system runs Bash and APT package manager. Otherwise, you may want to install them or use any of the Linux Debian-based distros like Ubuntu.
Step 1: Download the script repository to your local machine and change your current/working directory to the local repo.
$ git clone https://github.com/kolade-ogunleye/domainitor.git && cd domainitor
Step 2: Make “domainitor.sh” file an executable file
$ chmod u+x domainitor.sh
Step 3: Run the script
You may run the script in a basic mode simply by executing it and follow the prompt to supply the file path to the domain names list. However, this will not work if you intend to run the program in the background or for automation purposes. Hence the advance usage, you could invoke a couple of options, and the program run unattended if appropriately used.
BASIC USAGE
$ ./domainitor
And follow the prompts.
ADVANCE USAGE
$ ./domainitor.sh [-c] [n] [-f] [path/to/list]
Options:
- -c set n concurrency rate, n ranges from 2 to 32; default is 5
- -f relative or absolute path to the list containing domain names to check
Tip: While this tool is super simple, you can make it a superpower by adding a notification capability to alert you about expiring or expired domain names. You can also automate the generation of time-based reports.
Flow
The tool first checks if the system already has its dependencies installed, like the whois utility. Otherwise, it installs them, and of course, the user must have sudo privileges for this to be successful.
If you didn’t specify the domain names list as an argument, the program would prompt you to provide a relative or absolute path to it.
The program also checks for internet connectivity. Relatively fast internet is OK.
After which, it starts enumerating each domain name, printing results to the screen, and eventually generating a report file when it finishes running.
Result
With the generated report upon completion, you will get a brief statistic, information that can help you make actionable decisions about the checked domain names, and the path to the report file.
Contribution
If you would love to contribute to this tool, perhaps to disclose an issue or a bug, or any feature you thought would enhance or be a better addition, do not hesitate to send me a DM on Twitter.
Want To Discuss This Topic?
Click on the following to take it up on any of the forums 😊