This is a WHOIS client library for Rust.
Inspired by https://github.com/hjr265/node-whois. Forked from https://github.com/magiclen/whois-rust.
You can make a servers.json file or copy one from https://github.com/hjr265/node-whois
This is a simple example of servers.json.
{
"org": "whois.pir.org",
"": "whois.ripe.net",
"_": {
"ip": {
"host": "whois.arin.net",
"query": "n + $addr\r\n"
}
}
}Then, use the from_path (or from_string if your JSON data is in-memory) associated function to create a WhoIs instance.
use whois_rust::WhoIs;
let whois = WhoIs::from_path("/path/to/servers.json").unwrap();Use the lookup method and input a WhoIsLookupOptions instance to lookup a domain or an IP.
use whois_rust::{WhoIs, WhoIsLookupOptions};
let whois = WhoIs::from_path("/path/to/servers.json").unwrap();
let result: String = whois.lookup(WhoIsLookupOptions::from_string("magiclen.org").unwrap()).unwrap();You may want to use async APIs with your async runtime. This crate supports tokio, currently.
[dependencies.whois-rust]
version = "*"
features = ["tokio"]After enabling the async feature, the from_path_async function and the lookup_async function are available.
# git clone --recurse-submodules git://github.com/cycle-five/whois-rs.git
git clone git://github.com/cycle-five/whois-rs.git
cd whois-rs
git submodule init
git submodule update --recursive
cargo testhttps://crates.io/crates/whois-rs
https://docs.rs/whois-rs