fork of https://github.com/shellrow/default-net/tree/v0.16.2 fixes an unsafe bug in sockaddr_to_network_addr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
default-net/README.md

62 lines
1.8 KiB

4 years ago
[crates-badge]: https://img.shields.io/crates/v/default-net.svg
[crates-url]: https://crates.io/crates/default-net
[license-badge]: https://img.shields.io/crates/l/default-net.svg
[examples-url]: https://github.com/shellrow/default-net/tree/main/examples
# default-net [![Crates.io][crates-badge]][crates-url] ![License][license-badge]
4 years ago
Get default network information
`default-net` provides a cross-platform API for network interface and gateway.
## Supported platform
- Linux
3 years ago
- macOS
4 years ago
- Windows
## Usage
Add `default-net` to your dependencies
```toml:Cargo.toml
[dependencies]
default-net = "0.7.0"
4 years ago
```
## Example
```rust
use default_net;
fn main(){
3 years ago
match default_net::get_default_interface() {
Ok(default_interface) => {
println!("Default Interface");
println!("\tIndex: {}", default_interface.index);
println!("\tName: {}", default_interface.name);
println!("\tDescription: {:?}", default_interface.description);
3 years ago
if let Some(mac_addr) = default_interface.mac_addr {
println!("\tMAC: {}", mac_addr);
}else{
println!("\tMAC: (Failed to get mac address)");
}
println!("\tIPv4: {:?}", default_interface.ipv4);
println!("\tIPv6: {:?}", default_interface.ipv6);
if let Some(gateway) = default_interface.gateway {
println!("Default Gateway");
println!("\tMAC: {}", gateway.mac_addr);
println!("\tIP: {}", gateway.ip_addr);
}else {
println!("Default Gateway: (Not found)");
}
},
Err(e) => {
println!("{}", e);
},
4 years ago
}
}
```
## Tested on
- Linux
- Ubuntu 21.10, 20.04, 18.04
- Kali 2021.1 (VM)
- macOS 11.6
- Windows 10 20H2
For more details, see [examples][examples-url] or doc.