2 个不稳定版本
0.2.0 | 2021年7月14日 |
---|---|
0.1.0 | 2020年1月13日 |
#2221 in 网络编程
用于 knock-knock
77KB
2K SLoC
rdap_client
Rust 的异步且快速的 RDAP 客户端和解析器。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
rdap_client = "0.2"
tokio = "0.2"
然后您可以使用它如下所示
use rdap_client::Client;
#[tokio::main]
async fn main() {
let client = Client::new();
let domain_to_check = "nic.cz";
// Fetch boostrap from IANA.
let bootstrap = client.fetch_bootstrap().await.unwrap();
// Find what RDAP server to use for given domain.
if let Some(servers) = bootstrap.dns.find(&domain_to_check) {
let response = client.query_domain(&servers[0], domain_to_check).await.unwrap();
println!("{}", response.handle);
}
}
由于使用 async-await 语法,最小所需的 Rust 版本是 1.39.0。
支持的标准
- RFC 7480: 注册数据访问协议 (RDAP) 中的 HTTP 使用
- RFC 7482: 注册数据访问协议 (RDAP) 查询格式
- RFC 7483: 注册数据访问协议 (RDAP) 的 JSON 响应
- RFC 8056: 可扩展配置协议 (EPP) 和注册数据访问协议 (RDAP) 状态映射
- RFC 8521: 注册数据访问协议 (RDAP) 对象标记
- RDAP JSON 值
支持扩展
fred
cidr0
arin_originas0
rdap_objectTag
(RFC 8521)
非标准响应
并非所有 RDAP 服务器都遵循 RFC 7483,因此解析器可能无法正确解析这些响应。如果发生这种情况,请随时提交有关 rdap_client
无法解析的 URI 的问题。
有用的文章
依赖项
~5–18MB
~265K SLoC