decodelabs / compass
Parse, inspect and test IP addresses
Installs: 2 668
Dependents: 5
Suggesters: 1
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- brick/math: ^0.10|^0.11|^0.12
- decodelabs/exceptional: ^0.4
- decodelabs/fluidity: ^0.3.2
- decodelabs/glitch-support: ^0.4
Requires (Dev)
README
Parse, inspect and test IP addresses
Compass provides an accurate disassembly of both v4 and v6 IP addresses and the means to inspect and compare them.
Get news and updates on the DecodeLabs blog.
Installation
Install via Composer:
composer require decodelabs/compass
Usage
Parse 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:*')) {} // Wildcards
Licensing
Compass is licensed under the MIT License. See LICENSE for the full license text.