Compass provides an accurate disassembly of both v4 and v6 IP addresses and the means to inspect and compare them.
This package requires PHP 8.4 or higher.
Install via Composer:
composer require decodelabs/compassParse IP strings, integers and binaries and inspect them:
use DecodeLabs\Compass\Ip;
$ip = Ip::parse('127.0.0.1');
if($ip->isV4()) {
// Do something
}
if($ip->isLoopback()) {
// Do something else
}
$v6Hybrid = $ip->toV6(); // ::ffff:127.0.0.1
$v6 = Ip::parse('fe80:0:0:0:202:b3ff:fe1e:8329');
if($ip->isV6()) {
// The future
}Check to see if an IP is within a range:
if($ip->isIn('127.0.0.0/8')) {} // CIDR
if($ip->isIn('127.0.0.0/255.0.0.0')) {} // Netmask
if($ip->isIn('127.0.0.4-127.0.0.10')) {} // Range
if($ip->isIn('127.0.0.4+6')) {} // Relative range
if($ip->isIn('127.0.0.*')) {} // Wildcards
if($v6->isIn('fe80:0:0:0:202:b3ff:fe1e:0/128')) {} // CIDR
if($v6->isIn('fe80:0:0:0:202:b3ff:fe1e:0-fe80:0:0:0:202:b3ff:fe1e:ffff')) {} // Range
if($v6->isIn('fe80:0:0:0:202:b3ff:fe1e:0+9999')) {} // Relative range
if($v6->isIn('fe80:0:0:0:202:b3ff:fe1e:*')) {} // WildcardsCompass is licensed under the MIT License. See LICENSE for the full license text.