3.0.0 - 2022-03-02
- Dropped support for PHP 7.0
- Support for PHP 8.1
3.0.0-rc2 - 2021-07-22
- Separate "private" from other "reserved" IP addresses.
This changes the behaviour of
IP::isPrivate()
andIPBlock::getPrivateBlocks()
to be more narrow in scope. The previous behaviour has been moved to new methods:IP::isReserved()
andIPBlock::getReservedBlocks()
. IP::isPrivate()
renamed toIP::isReserved()
IPBlock::getPrivateBlocks()
renamed toIPBlock::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 registryIPBlock::getPrivateBlocks()
now returns only the forwardable and non globally reachable IP Blocks as defined in the IANA special-purpose address registry
3.0.0-rc1 - 2021-04-18
- 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 methodIPv6::createFromBinaryString
if you want to work withinet_pton
. Note: this is still supported for IPv4. IPBlock::getMask()
renamed toIPBlock::getNetmask()
IPBlock::getPrefix()
renamed toIPBlock::getPrefixLength()
IPBlock::getMaxPrefix()
renamed toIPBlock::getMaxPrefixLength()
IPBlock::getGivenIpWithPrefixLen()
renamed toIPBlock::getGivenIpWithPrefixLength()
- Support for PHP 8.0
- Added explicit factory methods for
IPv4
/IPv6
classes:createFromInt
,createFromFloat
,createFromString
,createFromBinaryString
,createFromNumericString
andcreateFromGmp
IPBlock::plus()
andIpBlock::minus()
now accept numeric strings and GMP instancesIPBlockIterator
now implementsArrayAccess
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()
- Optimise performance of
IP::isPrivate()
IPBlock::contains
now always throws anInvalidArgumentException
if mixing IP versions
- Removed deprecated method
IPBlock::getSuper
2.1.0 - 2020-10-31
- New method
IP::matches($ip, $mask)
to perform wildcard mask matching common in network Access Control Lists and OSPF dynamic routing #51 - IPv4Block: Allow to specify the prefix also as an old-style netmask #53
- Support for PHP 7.4
2.0.0 - 2019-09-01
- All classes now reside within
PhpIP
namespace. #14 - Deprecated
IPBlock::getSuper
, useIPBlock::getSuperBlock()
instead. #46
- New method
isLoopback()
#37 - New method
isLinkLocal()
#43 - New method
reversePointer()
#44 - New method
IpBlock::getGivenIp
to return the IP used in the constructor #6
- Drop support for PHP 5 #8
1.0.1 - 2015-06-26
- Compatibility issues with PHP 5.4, 5.5 and 5.6
First release