IFCFG

IFCFG (ifconfig) is a Rust library to get network interfaces information for Windows/Linux/Mac

Requirements

Include in project

toml [dependencies] ifcfg = "0.1.0"

Example

```rust use ifcfg;

fn main() -> ifcfg::Result<()> { let ifaces = ifcfg::IfCfg::get().expect("could not get interfaces"); println!("{:#?}", &ifaces); Ok(()) } ```


Compile

bash cargo b

Tests

bash cargo t

Run the included example

```bash cargo run --example interfaces Compiling ifcfg v0.1.0 (/root/ifcfg) Finished dev [optimized + debuginfo] target(s) in 0.63s Runningtarget/debug/examples/interfaces` [ IfCfg { name: "lo", mac: "00:00:00:00:00:00", addresses: [ InterfaceAddress { addressfamily: IPv6, address: Some( [::1]:0, ), mask: Some( [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:0, ), hop: None, }, InterfaceAddress { addressfamily: IPv4, address: Some( 127.0.0.1:0, ), mask: Some( 255.0.0.0:0, ), hop: Some( Destination( 127.0.0.1:0, ), ), }, InterfaceAddress { addressfamily: Packet, address: None, mask: None, hop: None, }, ], description: "", }, IfCfg { name: "ens33", mac: "00:0c:29:0a:e0:b4", addresses: [ InterfaceAddress { addressfamily: IPv6, address: Some( [fe80::20c:29ff:fe0a:e0b4%2]:0, ), mask: Some( [ffff:ffff:ffff:ffff::]:0, ), hop: None, }, InterfaceAddress { addressfamily: IPv6, address: Some( [fd15:4ba5:5a2b:1008:20c:29ff:fe0a:e0b4]:0, ), mask: Some( [ffff:ffff:ffff:ffff::]:0, ), hop: None, }, InterfaceAddress { addressfamily: IPv4, address: Some( 192.168.2.3:0, ), mask: Some( 255.255.255.0:0, ), hop: Some( Broadcast( 192.168.2.255:0, ), ), }, InterfaceAddress { address_family: Packet, address: None, mask: None, hop: None, }, ], description: "", }, ]

````


License: MIT/Apache