grntartaglia/netmask

解析和查找IP网络块

v1.0 2016-01-20 13:31 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:53:12 UTC


README

Netmask类解析并理解IPv4 CIDR块,以便它们可以探索和比较。此模块高度受node-netmask模块的启发。

翻译

安装

$ composer require grntartaglia/netmask

摘要

$block = new Netmask\Netmask('192.168.0.1/24');
$block->base;                       // 192.168.0.0
$block->mask;                       // 255.255.255.0
$block->bitmask;                    // 24
$block->hostmask;                   // 0.0.0.255
$block->broadcast;                  // 192.168.0.255
$block->size;                       // 256
$block->first;                      // 192.168.0.1
$block->last;                       // 192.168.0.254

$block->contains('192.168.0.7/24'); // true
$block->contains('192.168.0.126');  // true
$block->contains('192.168.1.1');    // false

// ['192.168.0.1', '192.168.0.2', '192.168.0.3', ...]
$block->getAll();

foreach ($block->getAll() as $ip) {
    // IP: 192.168.0.x
}

构建

Netmask对象使用IP地址和可选的掩码创建。有许多形式被识别

new Netmask('192.168.0.1/24');            // The preferred form.
new Netmask('192.168.0.1');               // A /32 block.
new Netmask('192.168.0.1/255.255.255.0');

API

  • ->base: 网络块的基本地址作为字符串(例如:216.240.32.0)。基本地址不提供网络块大小的指示。
  • ->mask: 网络掩码作为字符串(例如:255.255.255.0)。
  • ->hostmask: 主机掩码是网络掩码的相反数(例如:0.0.0.255)。
  • ->bitmask: 网络掩码作为地址网络部分的位数(例如:24)。
  • ->size: 块中IP地址的数量(例如:256)。
  • ->broadcast: 块的广播地址(例如:192.168.1.0/24 => 192.168.1.255)
  • ->first, ->last: 首个和最后一个可用的地址
  • ->contains($ip or $block): 如果IP号$ip是网络的一部分,则返回true。也就是说,如果$ip$base$broadcast之间,则返回true。如果给出Netmask对象或块,则只有在给定的块适合网络内部时才返回true。
  • ->getAll(): 返回一个包含所有可用地址的数组,即在$first$last之间。
  • ->__toString(): 网络掩码以基础/位数组格式表示(例如,'216.240.32.0/24')

许可证

(MIT许可证)

版权 (c) 2016 Gabriel Tartaglia gabriel@cappu.com.br

特此授予任何获得本软件及其相关文档文件(以下简称“软件”)副本的任何人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他方式相关。