hiqdev/php-ip-tools

A library based on rlanvin/php-ip for IP addresses calculations

1.1.0 2022-03-25 16:12 UTC

This package is auto-updated.

Last update: 2024-10-30 01:48:11 UTC


README

GitHub Actions Infection MSI

This library provides tooling for IP address calculations based on rlanvin/php-ip

Free IP blocks calculation

Compute the best possible aligned IP blocks within a given range, excluding the taken blocks or IP addresses.

Example:

$block = '192.168.0.0/24';
$taken = ['192.168.0.64/28'];

$calculator = new IpBlocksCalculator();
$free = $calculator->__invoke($block, $taken);

var_dump($free);
/*
 *  [
 *    '192.168.0.0/26',
 *    '192.168.0.80/28',
 *    '192.168.0.96/27',
 *    '192.168.0.128/25',
 *   ]
 */

See more examples in IpBlocksCalculatorTest.

IP ranges parsing

Parse fuzzy IP address block definitions and unwrap it to an array:

Example:

IpRangeParser::fromString('192.0.2.[1,2,100-250]/24');
// ['192.0.2.1/24', '192.0.2.2/24', '192.0.2.100/24' ... '192.0.2.250/24']

See more examples in IpRangeParserTest.