#网络 #IP #接口 #网页 #GitHub API

network-interface

以标准化的方式在 Linux、FreeBSD、macOS 和 Windows 上检索系统网络接口

21 个版本 (10 个稳定版)

2.0.0 2024 年 4 月 30 日
1.1.4 2024 年 4 月 21 日
1.1.2 2024 年 3 月 25 日
1.1.1 2023 年 11 月 6 日
0.1.2-beta2021 年 10 月 5 日

#30 in 网页编程

Download history 21835/week @ 2024-05-03 27428/week @ 2024-05-10 24376/week @ 2024-05-17 35191/week @ 2024-05-24 31249/week @ 2024-05-31 25706/week @ 2024-06-07 26249/week @ 2024-06-14 31961/week @ 2024-06-21 23332/week @ 2024-06-28 26886/week @ 2024-07-05 33469/week @ 2024-07-12 37352/week @ 2024-07-19 35246/week @ 2024-07-26 36256/week @ 2024-08-02 48029/week @ 2024-08-09 29211/week @ 2024-08-16

154,711 每月下载量
133 个库(25 个直接)中使用

MIT/Apache

45KB
880

network-interface

以标准化的方式在 Android、FreeBSD、Linux、macOS、iOS 和 Windows 上检索系统网络接口/适配器

Crates.io Documentation Build Clippy Formatter

此库正在开发中,欢迎在 GitHub 上贡献。API 和实现可能会更改。

network-interface 库的主要目标是以标准化的方式检索系统的网络接口。

“标准化方式”意味着每个支持的平台都必须公开相同的 API,且无需对实现进行进一步更改即可支持该平台。

用法

use network_interface::NetworkInterface;
use network_interface::NetworkInterfaceConfig;

fn main() {
    let network_interfaces = NetworkInterface::show().unwrap();

    for itf in network_interfaces.iter() {
        println!("{:?}", itf);
    }
}
输出
NetworkInterface { name: "lo", addr: Some(V4(V4IfAddr { ip: 127.0.0.1, broadcast: Some(127.0.0.1), netmask: Some(255.0.0.0) })) }
NetworkInterface { name: "wlp1s0", addr: Some(V4(V4IfAddr { ip: 192.168.0.16, broadcast: Some(192.168.0.255), netmask: Some(255.255.255.0) })) }
NetworkInterface { name: "wg0", addr: Some(V4(V4IfAddr { ip: 10.8.0.4, broadcast: Some(10.8.0.4), netmask: Some(255.255.255.0) })) }
NetworkInterface { name: "docker0", addr: Some(V4(V4IfAddr { ip: 172.17.0.1, broadcast: Some(172.17.255.255), netmask: Some(255.255.0.0) })) }
NetworkInterface { name: "lo", addr: Some(V6(V6IfAddr { ip: ::1, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff) })) }
NetworkInterface { name: "wlp1s0", addr: Some(V6(V6IfAddr { ip: <redacted>, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }
NetworkInterface { name: "docker0", addr: Some(V6(V6IfAddr { ip: <redacted>, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }
NetworkInterface { name: "veth9d2904f", addr: Some(V6(V6IfAddr { ip: <redacted>, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }
NetworkInterface { name: "vethcdd79af", addr: Some(V6(V6IfAddr { ip: <redacted>, broadcast: None, netmask: Some(ffff:ffff:ffff:ffff::) })) }

版本发布

为了创建一个版本,您必须按照以下方式推送 Git 标签

git tag -a <version> -m <message>

示例

git tag -a v0.1.0 -m "First release"

标签必须遵循 semver 规范 标签必须以下划线字母 v 开头。

然后按照以下方式推送标签

git push origin main --follow-tags

贡献

欢迎对这个项目做出贡献。请随意发起拉取请求、问题或开始这个项目。

许可证

在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发

依赖关系

~0.3–1MB
~19K SLoC