1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年9月8日 |
---|
#33 in #safe-network
110 每月下载量
16KB
159 行代码(不包括注释)
getaddrs 为系统的网络接口数据提供安全接口。
InterfaceAddrs
结构体提供了对系统网络接口数据的访问。您可以选择遍历它,或者消费它并将其转换为 InterfaceMap
(一个 HashMap
示例
您可以用几行代码访问系统的基本信息。以下程序打印所有已知地址。
use getaddrs::InterfaceAddrs;
let addrs = InterfaceAddrs::query_system()
.expect("System has no network interfaces.");
for addr in addrs {
println!("{}: {:?}", addr.name, addr.address);
}
InterfaceFlags
结构体提供了对接口状态的访问。此程序仅打印已开启的接口地址。
use getaddrs::{InterfaceAddrs, if_flags};
let addrs = InterfaceAddrs::query_system()
.expect("System has no network interfaces.");
for addr in addrs {
if addr.flags.contains(if_flags::IFF_UP) {
println!("{}: {:?}", addr.name, addr.address);
}
}
您可以将 InterfaceAddrs
结构体轻松转换为 HashMap。InterfaceMap 是 HashMap
use getaddrs::{InterfaceAddrs, InterfaceAddr, InterfaceMap};
use std::collections::HashMap;
let interfaces: InterfaceMap =
InterfaceAddrs::query_system()
.expect("System has no network interfaces.")
.into(); // Convert to a hash map
// Print all the addresses of the loopback interface
if let Some(addrs) = interfaces.get("lo") {
println!("Loopback addresses:");
for addr in addrs {
println!("\t{:?}", addr);
}
}
依赖项
~185KB