#networking #enumerate #local #interface #cross-platform #utility #ipv6

netifs

用于枚举本地网络接口的跨平台实用程序库

3 个版本 (破坏性更新)

0.3.0 2020 年 6 月 12 日
0.2.0 2020 年 6 月 6 日
0.1.0 2020 年 6 月 5 日

#9 in #enumerate

Apache-2.0

40KB
956

netifs

这是一个在 libc/winapi 之上的简单 Rust 封装,用于枚举网络接口。在 Windows 上,需要 MSVC 工具链来构建。

平台特定的实现都支持回环接口和 IPv6 支持。

用法

在 netifs-cli 中提供了一个示例程序

use netifs::get_interfaces;

fn main() {
    for interface in get_interfaces().expect("Getting interfaces failed") {
        println!("{}", interface.display_name);
        if let Some(mac) = interface.mac_address {
            println!("\tMAC: {}", mac.to_hex_string());
        }
        for ip in interface.ip_addresses {
            println!("\tIP: {}", ip);
        }
    }
}

lib.rs:

创建了一个用于枚举本地网络接口的实用程序。

此 crate 在 Windows 10 和 Ubuntu 19.10 上进行了测试

示例

use netifs::get_interfaces;

fn main() {
    for interface in get_interfaces().expect("Getting interfaces failed") {
        println!("{}", interface.name);
        if let Some(mac) = interface.mac_address {
            println!("\tMAC: {}", mac.to_hex_string());
        }
        for ip in interface.ip_addresses {
            println!("\tIP: {}", ip);
        }
    }
}

依赖项

~1–1.5MB
~24K SLoC