if_summary/
if-summary.rs

1use ftth_rtnl::RtnlClient;
2
3
4fn main() -> std::io::Result<()> {
5    let client = RtnlClient::new();
6    let link_client = client.link();
7    let addr_client = client.address();
8    let ifs = link_client.interface_list()?;
9    for interface in ifs {
10        println!("Interface: {} ({})", &interface.if_name, interface.if_id);
11        let if_id = interface.if_id;
12        let mac = link_client.mac_addr_get(if_id)?;
13        if let Some(mac) = mac {
14            println!("  MAC address: {}", mac);
15        } else {
16            println!("  No MAC address");
17        }
18        let v4addrs = addr_client.ipv4_addrs_get(Some(if_id))?;
19        println!("  IPv4 addresses:");
20        for addr in v4addrs {
21            println!("    {}", addr);
22        }
23        let v6addrs = addr_client.ipv6_addrs_get(Some(if_id))?;
24        println!("  IPv6 addresses:");
25        for addr in v6addrs {
26            println!("    {}", addr);
27        }
28        println!("");
29    }
30    Ok(())
31}