list_interfaces/
list_interfaces.rs1use wireforge_io::list_interfaces;
7
8fn main() {
9 let ifaces = list_interfaces().expect("failed to list interfaces");
10 println!("Found {} interface(s):\n", ifaces.len());
11 println!("{:<20} {:<8} {:<20} {:<8} {:?}", "Name", "Up", "MAC", "Loop", "IPs");
12 println!("{}", "-".repeat(80));
13 for iface in &ifaces {
14 let mac = iface.mac_address
15 .map(|m| format!("{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}", m[0], m[1], m[2], m[3], m[4], m[5]))
16 .unwrap_or_else(|| "-".into());
17 let ips: Vec<_> = iface.ips.iter().map(|ip| ip.to_string()).collect();
18 println!("{:<20} {:<8} {:<20} {:<8} {}",
19 iface.name,
20 if iface.is_up { "UP" } else { "DOWN" },
21 mac,
22 if iface.is_loopback { "LOOP" } else { "" },
23 ips.join(", "),
24 );
25 }
26}