You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deprecated auto-detection of binary strings for IPv6 #57
This means you can't directly pass the result of inet_pton to construct an IPv6 instance anymore, because it is
impossible to reliability distinguish some IPv6 human-readable representation from their binary string representation.
Instead, you need to use the explicit factory method IPv6::createFromBinaryString if you want to work with inet_pton.
Note: this is still supported for IPv4.
IPBlock::getMask() renamed to IPBlock::getNetmask()
IPBlock::getPrefix() renamed to IPBlock::getPrefixLength()
IPBlock::getMaxPrefix() renamed to IPBlock::getMaxPrefixLength()
IPBlock::getGivenIpWithPrefixLen() renamed to IPBlock::getGivenIpWithPrefixLength()
Separate "private" from other "reserved" IP addresses.
This changes the behaviour of IP::isPrivate() and IPBlock::getPrivateBlocks() to be more narrow in scope.
The previous behaviour has been moved to new methods: IP::isReserved() and IPBlock::getReservedBlocks().
IP::isPrivate() renamed to IP::isReserved()
IPBlock::getPrivateBlocks() renamed to IPBlock::getReservedBlocks()
IP::isPrivate() now only tests if an IP is in a forwardable and non globally reachable IP Block as defined in the IANA special-purpose address registry
IPBlock::getPrivateBlocks() now returns only the forwardable and non globally reachable IP Blocks as defined in the IANA special-purpose address registry
Added
Support for PHP 8.1
Support for PHP 8.0
Added explicit factory methods for IPv4/IPv6 classes: createFromInt, createFromFloat, createFromString, createFromBinaryString, createFromNumericString and createFromGmp
IPBlock::plus() and IpBlock::minus() now accept numeric strings and GMP instances
IPBlockIterator now implements ArrayAccess which means you can write e.g. IPBlock::create('192.168.0.0/24')->getSubBlocks('/25')[1]
New methods for IPv4Block/IPv6Block: getPrivateBlocks(), getLoopbackBlock(), getLinkLocalBlock()
Changed
Optimise performance of IP::isPrivate()
Fixed
IPBlock::contains now always throws an InvalidArgumentException if mixing IP versions