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