1use std::net::{IpAddr, Ipv4Addr};
2use std::thread;
3use tracert::trace::Tracer;
4
5fn main() {
6 let dst_ip: IpAddr = IpAddr::V4(Ipv4Addr::new(8, 8, 8, 8));
8 let tracer: Tracer = Tracer::new(dst_ip).unwrap();
11 let rx = tracer.get_progress_receiver();
12 let handle = thread::spawn(move || tracer.trace());
14 println!("Progress:");
16 while let Ok(msg) = rx.lock().unwrap().recv() {
17 println!("{} {} {:?} {:?}", msg.seq, msg.ip_addr, msg.hop, msg.rtt);
18 }
19 println!("Result:");
21 match handle.join().unwrap() {
22 Ok(r) => {
23 println!("Status: {:?}", r.status);
24 for node in r.nodes {
25 println!("{:?}", node);
26 }
27 println!("Trace Time: {:?}", r.probe_time);
28 }
29 Err(e) => {
30 print!("{}", e);
31 }
32 }
33}