1 个不稳定版本
0.1.0 | 2023年2月14日 |
---|
#2358 在 解析器实现
80KB
2K SLoC
test_friendly_rdap_client
为 Rust 提供异步和快速的 RDAP 客户端和解析器。
重要提示
这实际上是原始 rdap_client 的一个版本,增加了一些额外的功能,使其更容易在集成测试中连接 rdap_client
。
我最初尝试尽可能保持代码与上游代码接近,但不幸的是,crates.io 要么不喜欢 Cargo.toml 的设置方式,要么(更可能是)我在做一些愚蠢的事情。
用法
将其添加到您的 Cargo.toml
[dependencies]
test_friendly_rdap_client = "0.1"
tokio = "0.2"
然后您可以像这样使用它
use test_friendly_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);
}
}
支持的标准
- 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–17MB
~263K SLoC