#ip-address #local #ip #networking #web #operating-system

local-ip-address

在Linux、macOS和Windows上检索系统的本地IP地址和网络接口/适配器

22次发布

0.6.1 2024年2月25日
0.5.7 2024年1月20日
0.5.6 2023年9月27日
0.5.4 2023年7月27日
0.4.2 2021年7月14日

网络编程中排名13

Download history 74781/week @ 2024-03-14 78838/week @ 2024-03-21 87337/week @ 2024-03-28 75242/week @ 2024-04-04 77716/week @ 2024-04-11 87868/week @ 2024-04-18 77947/week @ 2024-04-25 81067/week @ 2024-05-02 82995/week @ 2024-05-09 85019/week @ 2024-05-16 69992/week @ 2024-05-23 72782/week @ 2024-05-30 66284/week @ 2024-06-06 72141/week @ 2024-06-13 67324/week @ 2024-06-20 62641/week @ 2024-06-27

每月下载量280,530
127个crates(93个直接)中使用

MIT/Apache

54KB
1K SLoC

local-ip-address

在Linux、Windows、macOS(及其他基于BSD的系统)上检索系统的本地IP地址和网络接口/适配器。

Crates.io Documentation Build Clippy Formatter

用法

通过执行local_ip函数获取您的系统的本地IP地址

use local_ip_address::local_ip;

fn main() {
    let my_local_ip = local_ip().unwrap();

    println!("This is my local IP address: {:?}", my_local_ip);
}

通过执行list_afinet_netifas函数检索来自AF_INETAF_INET6族的所有可用网络接口

use local_ip_address::list_afinet_netifas;

fn main() {
    let network_interfaces = list_afinet_netifas().unwrap();

    for (name, ip) in network_interfaces.iter() {
        println!("{}:\t{:?}", name, ip);
    }
}

检索网络接口或本地IP地址的底层方法可能根据运行的操作系统而有所不同。

操作系统 方法
Linux 建立Netlink套接字交换以检索网络接口
基于BSD 使用getifaddrs检索网络接口
Windows 消耗Win32 API检索网络适配器表

操作系统支持

当前支持的平台包括

  • Linux(需要至少v0.1.0);
  • macOS(需要至少v0.1.0);
  • Windows(需要至少v0.3.0);
  • 其他基于BSD(需要至少v0.5.0);包括
    • FreeBSD
    • OpenBSD
    • NetBSD
    • DragonFly

请注意,我们仅在macOS和FreeBSD上测试了此库的BSD实现,假设其他基于BSD的系统会有类似的行为。如果您在使用此库的其他基于BSD的系统时遇到任何问题,请创建一个问题

发布

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

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

示例

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

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

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

git push origin main --follow-tags

贡献

欢迎对这个项目的任何贡献。请随意发起一个pull request,一个问题,或者只是开始这个项目。

许可证

根据MIT许可证和Apache许可证(版本2.0)的条款进行分发

依赖

~0.3–13MB
~110K SLoC