#domain #contact #epp #host #client #protocols #management

epp-client

域名注册和管理可扩展配置协议(EPP)客户端库

7个版本 (重大变更)

0.7.0 2024年7月29日
0.5.0 2022年11月29日
0.4.0 2022年7月26日
0.3.1 2021年11月18日
0.1.2 2021年7月26日

#1556 in 网络编程

Download history 4/week @ 2024-07-01 139/week @ 2024-07-29

每月139次下载

MIT许可证

180KB
4K SLoC

域名注册和管理可扩展配置协议(EPP)库

Build Documentation

描述

epp-client是一个用Rust编写的客户端库,用于域名注册商的域名注册和管理。

它支持以下基本域名、联系人、主机和消息管理调用,计划在未来添加更多调用和其他EPP扩展,并最终符合EPP协议的RFC规范。

  • 域名检查

  • 域名创建

  • 域名信息

  • 域名更新

  • 域名删除

  • 域名续费

  • 域名转移

  • 联系人检查

  • 联系人创建

  • 联系人信息

  • 联系人更新

  • 联系人删除

  • 主机检查

  • 主机创建

  • 主机信息

  • 主机更新

  • 主机删除

  • 消息轮询

  • 消息确认

  • RGP恢复请求

  • RGP恢复报告

使用

只需将以下内容添加到您的项目的Cargo.toml

epp-client = "0.4"

操作

您可以使用域名注册配置创建一个类型为EppClient的mut变量。

use std::net::ToSocketAddrs;
use std::time::Duration;

use epp_client::EppClient;
use epp_client::domain::DomainCheck;
use epp_client::login::Login;

#[tokio::main]
async fn main() {
    // Create an instance of EppClient
    let host = "example.com";
    let addr = (host, 700).to_socket_addrs().unwrap().next().unwrap();
    let timeout = Duration::from_secs(5);
    let mut client = match EppClient::connect("registry_name".to_string(), addr, host, None, timeout).await {
        Ok(client) => client,
        Err(e) => panic!("Failed to create EppClient: {}",  e)
    };

    let login = Login::new("username", "password", None);
    client.transact(&login, "transaction-id").await.unwrap();

    // Execute an EPP Command against the registry with distinct request and response objects
    let domain_check = DomainCheck { domains: &["eppdev.com", "eppdev.net"] };
    let response = client.transact(&domain_check, "transaction-id").await.unwrap();

    response.res_data.unwrap().list
        .iter()
        .for_each(|chk| println!("Domain: {}, Available: {}", chk.id, chk.available));
}

输出将如下所示

Domain: eppdev.com, Available: 1
Domain: eppdev.net, Available: 1

请求

目前我没有访问注册表的OT&E账户进行广泛的测试。我正在使用hexonet的EPP网关进行测试,但访问注册表的OT&E账户将非常有帮助,因此如果有人能提供这样的账户,我将不胜感激!

依赖项

~13-24MB
~417K SLoC