5个版本

0.2.1 2024年1月13日
0.2.0 2022年10月27日
0.1.3 2022年10月6日
0.1.2 2022年8月26日

#688网络编程

Download history 87/week @ 2024-03-11 16/week @ 2024-03-18 36/week @ 2024-04-01 26/week @ 2024-04-08 14/week @ 2024-04-15 172/week @ 2024-04-22 3/week @ 2024-04-29 49/week @ 2024-05-06

每月128次下载

BSL-1.0 许可证

30KB
535 代码行

wpa-ctrl

Rust Crates.io Documentation

用法

use wpa_ctrl::{WpaControlReq, WpaControllerBuilder};

const WPA_CTRL_BUILD: WpaControllerBuilder<'static> = WpaControllerBuilder::new();

let mut ctrl = match WPA_CTRL_BUILD.open("wlan0") {
    Ok(ctrl) => ctrl,
    Err(error) => panic!("Cannot open wlan0"),
};

ctrl.request(WpaControlReq::status()).expect("Successful command");
while let Some(resp) = ctrl.recv().expect("To read message") {
    //Skip messages that are not intended as responses
    if resp.is_unsolicited() {
        continue;
    }

    if let Some(status) = resp.as_status() {
        println!("Network status={:?}", status);
        break;
    }
}

使用场景

添加新网络

  • 可选 scan 使用 scan_results 检查网络列表
  • add_network 返回网络 id
  • set_network <id> ssid "网络名称" 指定要关联的网络名称
  • set_network <id> psk "WAP密码" 指定WPA密码,仅当网络需要WPA安全时可用
  • set_network <id> key_mgmt NONE 指定无安全,用于连接无密码的网络
  • select_network <id> - 选择用于使用的网络。
  • save_config - 可选保存配置。

重新连接

  • 可选 disconnect;
  • 运行 reassociate 开始连接到当前选定的网络的进程

依赖项

~190KB