Crates.io | domaincheck |
lib.rs | domaincheck |
version | 0.4.57 |
created_at | 2025-04-22 17:57:59.617354+00 |
updated_at | 2025-09-24 00:55:08.131089+00 |
description | Check domainname availability on CLI using RDAP (with WHOIS fallback) |
homepage | |
repository | https://github.com/pepa65/domaincheck |
max_upload_size | |
id | 1644411 |
size | 123,489 |
Check domainname availability on CLI using RDAP (with WHOIS fallback)
A fast, robust CLI tool for checking domain availability using RDAP protocol with automatic WHOIS fallback and detailed domain information.
wget https://github.com/pepa65/domaincheck/releases/download/0.4.7/domaincheck
sudo mv domaincheck /usr/local/bin
sudo chown root:root /usr/local/bin/domaincheck
sudo chmod +x /usr/local/bin/domaincheck
If not installed yet, install a Rust toolchain, see https://www.rust-lang.org/tools/install
cargo install domaincheck
cargo install --git https://github.com/pepa65/domaincheck
git clone https://github.com/pepa65/domaincheck
cd domaincheck
rustup target add x86_64-unknown-linux-musl
cargo rel # Alias defined in .cargo/config.toml
The binary will be at target/x86_64-unknown-linux-musl/release/domaincheck
Even without a full Rust toolchain, rust binaries can be installed with the static binary cargo-binstall
:
# Install cargo-binstall for Linux x86_64
# (Other versions are available at https://crates.io/crates/cargo-binstall)
wget github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
tar xf cargo-binstall-x86_64-unknown-linux-musl.tgz
sudo chown root:root cargo-binstall
sudo mv cargo-binstall /usr/local/bin/
Only a linux-x86_64 (musl) binary available: cargo-binstall domaincheck
It will be installed in ~/.cargo/bin/
which will need to be added to PATH
!
Check domainname availability (TLD defaults to .com):
domaincheck example
Check a domain across multiple TLDs:
domaincheck example -t com org net io app
Get more detailed information about a domain:
domaincheck example.com -i
Check multiple domains from a file:
domaincheck --file domains.txt
domaincheck 0.4.57
Check domainname availability on CLI using RDAP (with WHOIS fallback)
Usage:
domaincheck [OPTIONS] [DOMAIN]
Arguments:
[DOMAIN] Domainname to check (without TLD for multiple TLD checking)
Options:
-t, --tld <TLD>... Check availability with these TLDs (space separated)
-f, --file <FILE> Input file with domains to check (one per line)
-j, --json Output results in JSON format
-u, --ui Launch interactive terminal UI dashboard
-c, --concurrency <CONCURRENCY> Max concurrent domain checks (max: 100) [default: 10]
-n, --no-whois Disable automatic WHOIS fallback
-v, --verbose Be extra verbose
-d, --debug Show detailed debug information and error messages
-h, --help Print help
-V, --version Print version
domaincheck example
Output:
🔴 example.com TAKEN
domaincheck myawesome -t com net org io
Output:
🔴 myawesome.com TAKEN
🟢 myawesome.net AVAILABLE
🟢 myawesome.org AVAILABLE
🔴 myawesome.io TAKEN
domaincheck google.com -i -p
Output:
🔍 Checking: google with TLDs: com
🔴 google.com TAKEN 1997-09-15T04:00:00Z..2028-09-14T04:00:00Z @"MarkMonitor Inc." serverDeleteProhibited, serverTransferProhibited, serverUpdateProhibited
File domains.txt contains:
example.com
xyz123domain
startup.io
# This is a comment
test-site.org
domaincheck --file domains.txt
Output:
Starting bulk domain check with concurrency: 10
Results will stream as they complete:
🟢 xyz123domain.com AVAILABLE (No info available for unregistered domains)
🔴 example.com TAKEN 1995-08-14T04:00:00Z..2025-08-13T04:00:00Z @"RESERVED-Internet Assigned Numbers Authority" client delete prohibited, client transfer prohibited, client update prohibited
🔴 test-site.org TAKEN (No info available)
🔴 startup.io TAKEN (No info available)
✅ 4 domains processed: 🟢 1 available, 🔴 3 taken, ⚠️ 0 unknown
domaincheck --file many-domains.txt --concurrency 50
domaincheck --file base-domains.txt --tld com org io
domaincheck startup -t com io xyz dev -u
domaincheck example.pizza -d
Output:
🔍 Checking: example with TLDs: pizza
🔍 No known RDAP endpoint for .pizza, trying bootstrap registry...
🟢 example.pizza still AVAILABLE (No info available for unregistered domains)
domaincheck example -j
Output:
[
{
"domain": "example.com",
"available": false,
"info": {
"registrar": "RESERVED-Internet Assigned Numbers Authority",
"creation_date": "1995-08-14T04:00:00Z",
"expiration_date": "2025-08-13T04:00:00Z",
"status": [
"client delete prohibited",
"client transfer prohibited",
"client update prohibited"
]
}
}
]
domaincheck mydomain -t com net org -j |jq '.[] | select(.available==true) | .domain'
domaincheck example.com -ji |jq '.[] | .info.expiration_date'
The JSON output can be easily integrated with other tools:
# Find all available domains and save to a file
domaincheck business -t com net org io xyz -j |jq '.[] | select(.available==true) | .domain' -r > available_domains.txt
# Find all available domains in a file and save to a file
domaincheck --file domains.txt -j | jq '.[] | select(.available==true) | .domain' -r > available_domains.txt
domaincheck
includes built-in support for many popular TLDs including:
com
, net
, org
, io
, app
, dev
, ai
, co
, xyz
, me
, info
, biz
, us
, uk
, eu
, tech
, blog
, page
, zone
, shop
, de
, ca
, au
, fr
, es
, it
, nl
, jp
, tv
, cc
, and others.
Additional TLDs can be checked using the bootstrap (-b
) option.
Feature | domain-check | whois-cli | dns-lookup |
---|---|---|---|
RDAP Protocol | ✅ | ❌ | ❌ |
Bootstrap Registry | ✅ | ❌ | ❌ |
Auto WHOIS Fallback | ✅ | ✅ | ❌ |
Detailed Info | ✅ | ❌ | ❌ |
Multiple TLDs | ✅ | ❌ | ✅ |
Bulk File Checking | ✅ | ❌ | ❌ |
Configurable Concurrency | ✅ | ❌ | ❌ |
Interactive UI | ✅ | ❌ | ❌ |
JSON Output | ✅ | ❌ | ✅ |
Concurrency Control | ✅ | ❌ | ❌ |
Speed | Fast ⚡ | Medium | Medium |
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature
).git commit -m 'Add some amazing feature'
).git push origin feature/amazing-feature
).This project is licensed under either of:
at your option.