1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
/*!
# WHOIS Rust
This is a WHOIS client library for Rust, inspired by https://github.com/hjr265/node-whois
## Usage
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**.
```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.
```rust,ignore
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.
```rust,ignore
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();
```
## Asynchronous APIs
You may want to use async APIs with your async runtime. This crate supports `tokio`, currently.
```toml
[dependencies.whois-rust]
version = "*"
features = ["tokio"]
```
After enabling the async feature, the `from_path_async` function and the `lookup_async` function are available.
## Testing
```bash
# git clone --recurse-submodules git://github.com/magiclen/whois-rust.git
git clone git://github.com/magiclen/whois-rust.git
cd whois-rust
git submodule init
git submodule update --recursive
cargo test
```
*/
#[cfg(feature = "tokio")]
pub extern crate tokio;
mod target;
mod who_is;
mod who_is_error;
mod who_is_host;
mod who_is_lookup_options;
mod who_is_server_value;
pub use target::*;
pub use who_is::*;
pub use who_is_error::*;
pub use who_is_host::*;
pub use who_is_lookup_options::*;
pub use who_is_server_value::*;