This crate aims to provide a low level access to nl80211.
This crate is inspired by the go wifi package made by @mdlayher.
This crate has some built-in functions to fetch information and metrics of wifi interfaces and wireless networks.
externcrate nl80211;use std::error::Error;use nl80211::Socket;fnmain() -> Result<(),Box<dynError>>{let interfaces = Socket::connect()?.get_interfaces_info()?;for interface in interfaces {let station = interface.get_station_info();println!("{}", station?.pretty_format());// bssid : FF:FF:FF:FF:FF:FF// connected time : 35.816666 minutes// beacon loss : 0// signal : -60 dBm// average signal : -61 dBm// rx packets : 148983// tx packets : 46335// rx bitrate : 60 Mb/s// tx bitrate : 140 Mb/s// tx retries : 12578// tx failed : 2}Ok(())}use nl80211::Socket;fnmain() -> Result<(), neli::err::NlError>{let interfaces = Socket::connect()?.get_interfaces_info()?;for interface in interfaces {println!("{}", interface);// Interface {// index: Some([3, 0, 0, 0]),// ssid: Some([101, 100, 117, 114, 111, 97, 109]),// mac: Some([255, 255, 255, 255, 255, 255]),// name: Some([119, 108, 112, 53, 115, 48]),// frequency: Some([108, 9, 0, 0]),// channel: Some([1, 0, 0, 0]),// power: Some([164, 6, 0, 0]),// phy: Some([0, 0, 0, 0]),// device: Some([1, 0, 0, 0, 0, 0, 0, 0])// }println!("{}", interface);// essid : eduroam// mac : FF:FF:FF:FF:FF:FF// interface : wlp5s0// frequency : 2.412 Ghz// channel : 1// power : 17 dBm// phy : 0// device : 1}Ok(())}externcrate nl80211;use std::error::Error;use nl80211::Socket;fnmain() -> Result<(),Box<dynError>>{let interfaces = Socket::connect()?.get_interfaces_info()?;for interface in interfaces {let station = interface.get_station_info();println!("{}", station?);// bssid : FF:FF:FF:FF:FF:FF// connected time : 35.816666 minutes// beacon loss : 0// signal : -60 dBm// average signal : -61 dBm// rx packets : 148983// tx packets : 46335// rx bitrate : 60 Mb/s// tx bitrate : 140 Mb/s// tx retries : 12578// tx failed : 2}Ok(())}- Implement custom errors
- Add more built-in functions
- Improve documentation