use rdap_client::RdapClient;#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = RdapClient::new(); let result = client.query("example.com").await?; if let Some(domain) = result.domain() { println!("Nameservers for {}:", domain.ldh_name.as_deref().unwrap_or("N/A") ); for ns in &domain.nameservers { let hostname = ns.ldh_name.as_deref().unwrap_or("Unknown"); println!("\n {}", hostname); // Display IP addresses (glue records) if let Some(ips) = &ns.ip_addresses { if !ips.v4.is_empty() { println!(" IPv4:"); for ip in &ips.v4 { println!(" {}", ip); } } if !ips.v6.is_empty() { println!(" IPv6:"); for ip in &ips.v6 { println!(" {}", ip); } } } // Display status if !ns.status.is_empty() { println!(" Status: {}", ns.status.join(", ")); } } } Ok(())}
use rdap_client::RdapClient;#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = RdapClient::new(); // Query a specific nameserver let result = client.query_nameserver("ns1.example.com").await?; if let Some(nameserver) = result.nameserver() { println!("Nameserver: {}", nameserver.ldh_name.as_deref().unwrap_or("N/A") ); println!("Handle: {}", nameserver.handle.as_deref().unwrap_or("N/A") ); // Show all IP addresses if let Some(ips) = &nameserver.ip_addresses { println!("\nIP Addresses:"); for ip in &ips.v4 { println!(" {}", ip); } for ip in &ips.v6 { println!(" {}", ip); } } // Show status if !nameserver.status.is_empty() { println!("\nStatus: {}", nameserver.status.join(", ")); } // Show events for event in &nameserver.events { println!("\n{}: {}", event.action, event.date); } } Ok(())}