colinodell / ipv4
This package is abandoned and no longer maintained.
No replacement package was suggested.
IPv4 classes for PHP
1.0.0
2017-07-13 14:36 UTC
Requires
- php: ^5.3.3|^7.0
Requires (Dev)
- phpunit/phpunit: ^4.8|^5.0
- scrutinizer/ocular: ^1.1
This package is auto-updated.
Last update: 2022-03-26 06:36:59 UTC
README
Purpose
Identify, convert, and enumerate IPv4 IP addresses and subnets
Installation
Install with Composer: composer require colinodell/ipv4
Examples
<?php use ColinODell\Ipv4\Address; use ColinODell\Ipv4\Subnet; $ip = Address::fromString('10.2.1.1'); $sn = Subnet::fromString('10.2.0.0/16'); // Subnets can also be created like this: $sn = new Subnet('192.168.1.0/24'); $sn = new Subnet('192.168.1.0', '255.255.255.0'); $sn = new Subnet(Address::fromString('192.168.1.0'), Address::fromString('255.255.255.0')); $sn = new Subnet('192.168.1.0 255.255.255.0'); $sn = Subnet::fromString('192.168.1.0/24'); $sn = Subnet::fromString('192.168.1.0 255.255.255.0'); // Test if IP is in subnet $sn->contains($ip) // true $sn->contains('10.3.1.23') // false Subnet::containsAddress($sn,$ip) Subnet::containsAddress('192.168.1.0/27','192.168.1.246') // Test if two IPs are on the same network $netmask = '255.255.255.0'; Subnet::containsAddress(new Subnet($ip1,$netmask),$ip2) // Can be written in numerous ways... Subnet::containsAddress("{$ip1}/24",$ip2) Subnet::fromString("{$ip1}/24")->contains($ip2) // Subnet information $sn->getNetwork() $sn->getNetmask() $sn->getNetmaskCidr() $sn->getFirstHostAddr() $sn->getLastHostAddr() $sn->getBroadcastAddr() // Enumerate subnet addresses foreach($sn as $addr) ... // Count number of usable IPs on subnet (implements Countable) $sn->getTotalHosts() $sn->count() count($sn)