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中使用

MIT/Apache

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许可证的定义,任何贡献,根据Apache-2.0许可证的定义,有意提交给工作并由您包含的,根据Apache-2.0许可证的定义,应根据以下Apache许可证2.0或MIT许可证双重许可,由ICANN选择,不附加任何额外条款或条件。

依赖项

~8–24MB
~391K SLoC