15个版本
0.4.1 | 2021年11月12日 |
---|---|
0.4.0 | 2021年7月12日 |
0.3.4 | 2019年5月3日 |
0.3.3 | 2019年2月25日 |
0.1.1 | 2017年9月27日 |
#58 在 网络编程
219,192 每月下载量
用于 203 个Crates (24 直接)
150KB
2.5K SLoC
ip_network
IPv4和IPv6网络结构体。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
ip_network = "0.4"
添加到您的crate根目录(当您的项目是Rust 2018版本时不是必需的)
extern crate ip_network;
然后您可以使用它如下所示
use std::net::Ipv4Addr;
use ip_network::Ipv4Network;
let ip_network = Ipv4Network::new(Ipv4Addr::new(192, 168, 1, 0), 24)?;
assert_eq!(Ipv4Addr::new(192, 168, 1, 0), ip_network.network_address());
assert_eq!(24, ip_network.netmask());
assert_eq!(254, ip_network.hosts().len());
assert_eq!("192.168.1.0/24", ip_network.to_string());
所需的最小Rust编译器版本是
- 0.3版本及更高版本需要1.31(因为2018版本),
- 0.2版本需要1.26(因为支持u128数据类型),
- 对于旧编译器,您可以使用0.1版本。
可选功能
在使用此crate时,您可以选择编译以下功能
Serde支持
要启用由Serde框架提供的序列化和反序列化,只需在您的Cargo.toml
中的包中添加serde
功能即可
[dependencies]
ip_network = { version = "0.4", features = ["serde"] }
Diesel支持
要启用对diesel CIDR类型的支持,只需在您的Cargo.toml
中的包中添加diesel
功能即可
[dependencies]
ip_network = { version = "0.4", features = ["diesel"] }
然后您可以使用ip_network::diesel_support::PqCidrExtensionMethods
trait来支持CIDR运算符。
Postgres支持
要启用对postgres crate CIDR类型的支持,只需在您的Cargo.toml
中的包中添加postgres
功能即可
[dependencies]
ip_network = { version = "0.4", features = ["postgres"] }
与ipnetwork
crate的比较
提供类似功能的还有ipnetwork crate。下表显示了这两个crate之间的差异
功能 | ip_network | ipnetwork |
---|---|---|
IPv4 | ✓ | ✓ |
IPv6 | ✓ | ✓ |
IPv4和IPv6枚举 | ✓ | ✓ |
IPv4网络类型 | ✓ | |
IPv6网络类型 | ✓ | |
主机迭代器 | ✓ | ✓ |
子网迭代器 | ✓ | |
检查主机位设置 | ✓ | |
Serde | ✓ | ✓ |
Serde二进制 | ✓ | |
Diesel CIDR | ✓ | ✓ |
Diesel运算符 | ✓ | |
Postgres CIDR | ✓ | |
IPv4 字符串解析 | 65 纳秒 | 379 纳秒 |
IPv6 字符串解析 | 126 纳秒 | 434 纳秒 |
IPv4 包含方法 | 7 纳秒 | 15 纳秒 |
IPv6 包含方法 | 28 纳秒 | 49 纳秒 |
依赖项
~0–9.5MB
~89K SLoC