9个版本
0.0.16 | 2024年3月15日 |
---|---|
0.0.15 | 2023年12月18日 |
0.0.14 | 2023年11月26日 |
0.0.13 | 2023年8月7日 |
0.0.9 | 2023年6月24日 |
#5 in #rdap
在 2 crates中使用
390KB
10K SLoC
ICANN RDAP客户端库
这是一个由互联网名称与数字地址分配机构(ICANN)编写并赞助的注册数据访问协议(RDAP)客户端库。RDAP是IETF的标准,RDAP的扩展是IETF的REGEXT工作组的一项当前工作活动。有关ICANN在RDAP中的作用的更多信息,请在此找到。
安装
将库添加到您的Cargo.toml文件中:cargo add icann-rdap-client
另外,添加公共库:cargo add icann-rdap-common
.
icann-rdap-common和icann-rdap-client都可以为WASM目标进行编译。
使用方法
在RDAP中,引导程序是使用IANA RDAP引导文件查找要查询的权威RDAP服务器的过程。要使用引导程序进行查询
use icann_rdap_client::*;
use std::str::FromStr;
use tokio::main;
#[tokio::main]
async fn main() -> Result<(), RdapClientError> {
// create a query
let query = QueryType::from_str("192.168.0.1")?;
// or
let query = QueryType::from_str("icann.org")?;
// create a client (from icann-rdap-common)
let config = ClientConfig::default();
let client = create_client(&config)?;
// ideally, keep store in same context as client
let store = MemoryBootstrapStore::new();
// issue the RDAP query
let response =
rdap_bootstrapped_request(
&query,
&client,
&store,
|reg| eprintln!("fetching {reg:?}")
).await?;
Ok(())
}
指定基本URL
use icann_rdap_client::*;
use std::str::FromStr;
use tokio::main;
#[tokio::main]
async fn main() -> Result<(), RdapClientError> {
// create a query
let query = QueryType::from_str("192.168.0.1")?;
// or
let query = QueryType::from_str("icann.org")?;
// create a client (from icann-rdap-common)
let config = ClientConfig::default();
let client = create_client(&config)?;
// issue the RDAP query
let base_url = "https://rdap-bootstrap.arin.net/bootstrap";
let response = rdap_request(base_url, &query, &client).await?;
Ok(())
}
许可证
根据您的选择,许可协议为以下之一
- Apache许可证2.0版本(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
贡献
除非您明确说明,否则根据Apache-2.0许可证的定义,任何贡献,根据Apache-2.0许可证的定义,有意提交给工作并由您包含的,根据Apache-2.0许可证的定义,应根据以下Apache许可证2.0或MIT许可证双重许可,由ICANN选择,不附加任何额外条款或条件。
依赖项
~8–24MB
~391K SLoC