#ipv4 #ipv4-address #host #numbers #networking #connect #subnetworks

subnet

基于给定地址和要连接的主机数量创建 IPv4 子网的库

1 个不稳定版本

0.1.0 2024年3月4日

#11#ipv4-address

MIT/Apache

13KB
194

Subnet

基于给定地址和要连接的主机数量创建 IPv4 子网的库。

✏️ 使用方法

use std::net::Ipv4Addr;

use subnet::{self, SubnetData, SubnetError};

fn main() {
    let addrs: Ipv4Addr = Ipv4Addr::new(192, 168, 20, 0);
    let hosts: u32 = 120;

    let subnet: SubnetData = subnet::create_subnet(addrs, hosts).unwrap_or_else(|err: SubnetError| {
        println!("Error: {}", err);
        std::process::exit(1);
    });

    let useful_range: Vec<Ipv4Addr> = subnet.useful_range();

    let bin_subnet: String = subnet::ip_to_binary(subnet.subnet_addrs());

    println!(
        "Subnet address: {}\nBin subnet: {}\nBroadcast: {}\nMask: /{}\nUseful range: [{} - {}]",
        subnet.subnet_addrs(), bin_subnet, subnet.broadcast(), subnet.mask(), 
        useful_range.first().unwrap(), useful_range.last().unwrap()
    );
}

输出

Subnet address: 192.168.20.0
Bin subnet: 11000000101010000001010000000000
Broadcast: 192.168.20.127
Mask: /25
Useful range: [192.168.20.1 - 192.168.20.126]

📖 将库添加到项目中

您可以使用以下命令将包添加到项目中:

cargo add subnet

或者,您可以手动将以下内容添加到项目的 Cargo.toml 文件中:

[dependencies]
subnet = "*" # Change the `*` to the current version

💻 贡献

如果您想向库中添加新功能,请按照以下步骤操作。

克隆此仓库

git clone [email protected]:Pacatro/subnet.git
cd subnet

运行测试

cargo test

运行示例

cargo run --example subnet

🔑 许可证

MIT - 由 P4k0 创建。

无运行时依赖