use std::net::Ipv4Addr;
use pnet::datalink;
use pnet::ipnetwork;
fn main() {
let interfaces = datalink::interfaces();
for interface in interfaces {
let ip:Vec<Ipv4Addr> = interface.ips.iter().map(|ip| match ip {
ipnetwork::IpNetwork::V4(ref ipv4) => Ok(ipv4.ip()),
_ => Err(""),
}).filter_map(Result::ok).collect();
#[cfg(unix)]
if !ip.is_empty() && !interface.is_loopback() && interface.is_running() && interface.is_up() {
println!("{}", interface.name);
}
#[cfg(not(unix))]
if !ip.is_empty() && !interface.is_loopback() && interface.is_running() && interface.is_up() {
println!("{}", interface.name);
}
}
}
rust 使用pnet获取本地活动的网卡
最新推荐文章于 2024-07-10 16:57:20 发布