use std::{net::IpAddr, sync::Arc};
use cdns_rs::{sync::{QDns, ResolveConfig}, DnsRdata, QuerySetup};
fn main()
{
let cfg = "nameserver 1.1.1.1#@443#https://cloudflare-dns.com/dns-query \n\
options use-vc single-request";
let cust = Arc::new(ResolveConfig::custom_config(cfg).unwrap());
let dns = QDns::make_a_aaaa_request(Some(cust), "google.com", QuerySetup::default()).unwrap();
let res = dns.query();
let mut iplist: Vec<IpAddr> = vec![];
let recs = res.get_ok_or_error().unwrap();
for dnsr in recs.into_iter()
{
for resp in dnsr.into_iter()
{
match resp.borrow_rdata()
{
DnsRdata::A(ip) =>
iplist.push(IpAddr::from(ip.ip)),
DnsRdata::AAAA( ip ) =>
iplist.push(IpAddr::from(ip.ip)),
_ => continue,
}
}
}
println!("A/AAAA:");
for a in iplist
{
println!("\t{}", a);
}
return;
}