36 lines
1,010 B
Rust
36 lines
1,010 B
Rust
#[macro_use]
|
|
extern crate lazy_static;
|
|
mod connection_check;
|
|
mod connectors;
|
|
use connectors::types::{Connector};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
// let ip4 = connection_check::ipv4_info().await?;
|
|
// println!("{:?}", ip4);
|
|
|
|
let connector = connectors::macos::MacOSConnector {};
|
|
|
|
let ifaces = connector.list_network_interfaces().expect("network interface listing errored");
|
|
|
|
for iface in &ifaces {
|
|
println!("{:?}", iface);
|
|
}
|
|
|
|
let iface = ifaces.into_iter().find(|f| f.human_name == Some("Wi-Fi".to_string()))
|
|
.expect("Wi-Fi interface not found");
|
|
|
|
let networks = connector.list_networks(&iface).expect("network listing errored");
|
|
|
|
for net in &networks {
|
|
println!("{:?}", net);
|
|
}
|
|
|
|
let network = networks.into_iter().find(|net| net.ssid == "test")
|
|
.expect("network not found");
|
|
|
|
connector.connect_to_network(&iface, &network, None).expect("could not connect to network");
|
|
|
|
Ok(())
|
|
}
|