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日

Web编程 中排名第393位

Download history 14/week @ 2024-03-08 132/week @ 2024-03-15 5/week @ 2024-03-22 37/week @ 2024-03-29 10/week @ 2024-04-05

每月下载量283

MIT/Apache

450KB
11K SLoC

ICANN RDAP CLI

这是由互联网名称与数字地址分配机构(ICANN)编写和资助的注册数据访问协议(RDAP)命令行界面(CLI)客户端。RDAP是IETF的标准,RDAP的扩展是IETF的REGEXT工作组的当前工作活动。关于ICANN在RDAP中的角色,更多信息可以在此处找到。

安装RDAP客户端

预构建的二进制文件

大多数主流系统都提供了预构建的二进制文件:Linux GNU系统的x86_64和Arm 64位,macOS的x86_64和Arm 64位,以及Windows的x86_64。您可以在发布页面上找到预构建的二进制文件。

对于非Ubuntu Linux,建议从crates.io或源代码(两者都很简单)编译,以避免与OpenSSL动态链接的问题。

从crates.io编译

如果您的系统上已安装Rust,则从源代码编译非常简单。如果您系统上没有安装Rust,通常很容易安装:请参阅Rustup

如果您使用的是Linux系统,则需要OpenSSL开发文件。对于Debian和Ubuntu,通常通过以下命令安装:apt install pkg-config libssl-dev。对于其他Linux系统,请参阅您的打包文档。

对于macOS和Windows,使用本机TLS库,无需安装步骤。

要构建和安装:cargo install icann-rdap-cli

从源代码编译

如果您的系统上已安装Rust,则从源代码编译非常简单。如果您系统上没有安装Rust,通常很容易安装:请参阅Rustup

如果您使用的是Linux系统,则需要OpenSSL开发文件。对于Debian和Ubuntu,通常通过以下命令安装:apt install pkg-config libssl-dev。对于其他Linux系统,请参阅您的打包文档。

对于macOS和Windows,使用本机TLS库,无需安装步骤。

运行测试:cargo test

然后构建软件:cargo build --release。'rdap'可执行二进制文件将在target/release目录中可用。

使用RDAP客户端

基本用法是 rdap XXX,其中XXX可以是域名、IP地址、AS号码等...

对于更高级的用法,运行 rdap --help,这将提供详细的帮助指南。

分页输出

客户端内置(嵌入式)分页器。通过环境变量 RDAP_PAGING 和命令参数 -P 控制该分页器的使用。

它有三个值

  • "嵌入式" - 使用内置的分页器
  • "自动" - 如果程序是从终端运行,则使用内置分页器
  • "无" - 不使用分页

例如,-P embedded 将默认使用内置分页器。

默认情况下,客户端不会使用分页器。

设置为 "自动" 时,客户端将确定是否需要分页。这是通过尝试确定终端是否为交互式来完成的。如果不是交互式终端,则关闭分页,否则开启。

输出格式

默认情况下,客户端将尝试确定信息的输出格式。如果它确定shell是交互式的,输出将是 渲染的markdown。否则输出将是JSON。

可以使用命令参数 -O 或环境变量 RDAP_OUTPUT(见下文)显式控制此行为。

将查询定向到特定服务器

默认情况下,客户端将使用IANA提供的RDAP引导文件来确定请求信息的权威服务器。这些IANA文件包含RDAP服务器的 "基本URL"。

您可以通过指定IANA对象标签注册表中的基本 "对象标签" 或显式URL来覆盖此行为。

可以使用命令参数 -b 或环境变量 RDAP_BASE(见下文)指定对象标签。例如,-b arin 将将客户端引导到RDAP对象标签注册表中的ARIN服务器。

可以使用命令参数 -B 或环境变量 RDAP_BASE_URL 指定显式基本URL。

缓存

默认情况下,客户端将根据请求URL和RDAP结果中提供的 "self" 链接缓存数据。

可以使用命令参数 -N 或将环境变量 RDAP_NO_CACHE 设置为 "true" 来关闭此功能。

日志记录

客户端记录其处理中的错误、警告和其他信息。这可以通过命令参数 --log-level 或环境变量 RDAP_LOG 来控制。

安全连接

默认情况下,客户端将使用安全连接。以下参数和环境变量可以用来修改此行为

  • -TRDAP_ALLOW_HTTP : RDAP服务器应使用HTTPS。当提供或设置为true时,允许HTTP。
  • -KRDAP_ALLOW_INVALID_HOST_NAMES : 允许主机名与证书不匹配的HTTPS连接。
  • -IRDAP_ALLOW_INVALID_CERTIFICATES : 允许TLS证书无效的HTTPS连接。

配置

本程序的配置可以通过环境变量或使用程序配置目录中的环境变量配置文件来设置。示例配置文件会自动写入配置目录。可以通过取消注释提供的环境变量设置来自定义此配置文件。

配置文件的位置取决于平台。

在Linux上,此文件位于 $XDG_CONFIG_HOME/rdap/rdap.env 或 $HOME/.config/rdap/rdap.env。

在macOS上,此文件位于 $HOME/Library/Application Support/rdap/rdap.env。

在Windows上,此文件位于 {FOLDERID_RoamingAppData}\rdap\config\rdap.env。

重置

使用 --reset 参数重置所有客户端状态。这将删除RDAP和IANA缓存,并将 rdap.env 文件(见上文)重置为默认值。

许可证

根据您的选择,许可方式如下

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的任何贡献,有意提交给您的工作,根据Apache-2.0许可证定义,应按照ICANN的选择,根据Apache License,版本2.0或上述MIT许可证双许可,不附加任何其他条款或条件。

依赖

~18–37MB
~547K SLoC