let domain = whos::domain("debian.org").unwrap();
assert_eq!(domain.name, "debian.org");
assert_eq!(domain.suffix, ".org");
assert_eq!(domain.created, Some("1999-03-10T05:00:00Z"));
$ cargo run --example domain -- debian.org domain : debian.org created: 1999-03-10T05:00:00Z expiry : 2025-03-10T05:00:00Z name servers: dns4.easydns.info nsp.dnsnode.net sec1.rcode0.net sec2.rcode0.net # basically the same $ whois debian.org | cargo run --example domain
Currently the parsing functionality is focused on domain names.
WHOIS server "major" changes, e.g. a suffix losing its server, are not considered breaking changes.
Due to data use policies of registries, test data can not be distributed in this repository. For most suffixes, the base domains of their WHOIS servers are enough; others might need manual checks.
Check if whois(1) has updated data (tld_serv_list & new_gtlds_list); if so,
-
git submodule update --init
-
cargo run --package build-data
-
Examine
git diff src/server_list.rs
WHOIS server data is from whois(1) by Marco
d’Itri, licensed under GPL 2.0.
Specifically, the tld_server_list
and new_gtlds_list
files.
Domain name data parsing rules are derived from the Python WhoisDomain library, licensed under MIT license.