1use std::env::args;
4
5use sync_resolve::{DnsConfig, DnsResolver};
6
7fn main() {
8 let config = DnsConfig::with_name_servers(vec![
9 "8.8.8.8:53".parse().unwrap(),
11 "8.8.4.4:53".parse().unwrap(),
12 ]);
13
14 let resolver = match DnsResolver::new(config) {
15 Ok(r) => r,
16 Err(e) => {
17 println!("failed to create DNS resolver: {}", e);
18 return;
19 }
20 };
21
22 let args = args().collect::<Vec<_>>();
23
24 if args.len() == 1 {
25 println!("Usage: {} <host name> [...]", args[0]);
26 return;
27 }
28
29 for arg in &args[1..] {
30 match resolver.resolve_host(&arg) {
31 Ok(mut addrs) => {
32 let addr = addrs.next().expect("empty ResolveHost");
33 let n = addrs.count();
34
35 if n == 0 {
36 println!("\"{}\" resolved to {}", arg, addr);
37 } else {
38 println!("\"{}\" resolved to {} ({} more)", arg, addr, n);
39 }
40 }
41 Err(e) => println!("failed to resolve \"{}\": {}", arg, e),
42 }
43 }
44}