10.27 2016-11-17 2 3- If your version of Socket.pm provides a sane inet_pton, most of the is_*_ip 4 subroutines will use a much faster implementation. is_private_ipv4 and 5 is_private_ipv4 are approximately 16x faster. is_private_ipv6 and 6 is_public_ipv6 are about 3-4x faster. Implemented by Greg Oschwald. GitHub 7 PR #8. 8 9 100.26 2016-05-31 11 12- Fixed issue where invalid IPv6 strings such as ::0000000 would be marked as 13 valid by is_ipv6() when using the faster inet_pton() code path (GitHub 14 #6). Fixed by Greg Oschwald. GitHub PR #7. 15 16 170.25 2016-02-01 18 19- Added is_ip(), is_public_ip(), is_private_ip(), is_linklocal_ip(), 20 is_loopback_ip(), and is_multicast_ip(). These are similar to the existing 21 subroutines but are IP address family agnostic. Implemented by Greg 22 Oschwald. GitHub PR #5. 23 24- The subroutines included in this module now always return a scalar when 25 called in list context. Previously they would generally return an empty list 26 when validation failed. Implemented by Greg Oschwald. GitHub PR #5. 27 28 290.24 2014-08-28 30 31- A string with a null byte (\0) would be considered valid if the internal 32 implementation used inet_pton() to validate IP addresses. Fixed by Greg 33 Oschwald. GitHub PR #4. 34 35 360.23 2014-03-09 37 38- Fixed is_ipv6 to correctly fail for a string like ":abcd" on platforms where 39 inet_pton() isn't usable. Reported by Brian Bickerton. RT #93622. 40 41- As a side effect of the above, the code to check IPv6 addresses when 42 inet_pton() isn't usable is about 7-8x times faster now. 43 44 450.22 2013-12-05 46 47- Fixed some small doc typo/formatting issues. 48 49 500.21 2013-12-05 51 52- The 198.51.100.0/24 and 203.0.113.0/24 networks were mistakenly put in the 53 unroutable list, rather than the testnet list. This has been fixed. Note 54 that if you've just been using is_public_ipv4 in your code, there are no 55 changes in the results. 56 57- Added the 6to4 anycast network - 192.88.99.0/24. Addresses in this network 58 are not considered public and there is now a new is_anycast_ipv4() 59 subroutine exported. 60 61- Added a number of missing reserved IPv6 networks. These are the IPv4-mapped 62 block (::ffff:0:0/96), the discard prefix (100::/64), TEREDO (2001::/32), 63 ORCHID (2001:10::/28), and documentation (2001:db8::/32) IPv6 64 networks. There are now is_ipv4_mapped_ipv6(), is_discard_ipv6(), 65 is_teredo_ipv6(), is_orchid_ipv6(), and is_documentation_ipv6() subs. Note 66 that the TEREDO and ORCHID networks are both subnets of the larger special 67 network, and as such were already excluded by is_public_ipv6(), though 68 arguably the TEREDO addresses _should_ be considered public. 69 70- Rewrote most of the docs to greatly reduce the amount of text and to improve 71 the ToC on MetaCPAN and search.cpan.org. 72 73 740.20 2013-07-13 75 76- Add docs for the is_public_ipv6() sub that was added in 0.15. Reported by 77 Greg Oschwald. 78 79 800.19 2013-03-13 81 82- Fix a deprecation warning that showed up with Perl 5.10.1, but not with 83 newer Perls. Reported by Iosif Fettich. 84 85 860.18 2013-02-19 87 88- Versions 0.15 - 0.17 still had $VERSION set to 0.14. Reported by Greg 89 Oschwald. 90 91 920.17 2013-02-19 93 94- Previous releases broke is_innet_ipv4 for many network formats. This support 95 has been restored, but only the "a.b.c.d/nn" CIDR form will be documented 96 going forward. All other forms are deprecated, and support for them will be 97 removed in a future release. 98 99 1000.16 2013-02-06 101 102- Made the check for Socket.pm stricter. On some platforms it exports an 103 inet_pton() that just dies when called. On other platforms it accepts 104 invalid input like '016.17.184.1' or '2067::1:'. 105 106 1070.15 2013-02-04 108 109- If your installed version of Socket.pm provides an inet_pton subroutine we 110 use that to do validation. This is about 5x faster for IPv4 addresses and 20 111 times faster for IPv6. 112 113- Various unroutable networks are now recognized as non-public 114 addresses. Based on a patch by Greg Oschwald. (Bug#83081). 115 116- Added is_unroutable_ipv4 exported sub. 117 118- Added is_public_ipv6, is_private_ipv6, is_loopback_ipv6, is_multicast_ipv6, 119 and is_special_ipv6 subroutines. 120 121- Fixed the is_linklocal_ipv6 method. It didn't recognize the full link-local 122 range properly. 123 124- Fixed bug where '::' was not recognized as a valid IPv6 address. (Bug#81700) 125 126- Fixed bug where ipv6 related subroutines were not untainting their return 127 value. 128 129 1300.14 2011-01-06 131 132- Cleaned up test suite (no code changes) 133 134 1350.13 2011-01-06 136 137- Fixed unshorted ipv6 check when ipv4 address is trailing. (Bug#64532) Thanks 138 to Milan Matlak <milan.matlak@sde.cz> for patch 139 140 1410.12 2010-12-29 142 143- Fixed parsing of trailing :: (such as 2001::), as that is valid This address 144 bug#58991 - Thanks to Alan.Chester@tekelec.com for identifying the problem. 145 146- Also fixed incorrectly treating 2001::1: as a valid IPv6 address when it 147 isn't 148 149 1500.11 2010-03-01 151 152- Added support for is_innet_ipv4 - simple check to see if IP is in network. 153 Thanks to "Bartłomiej Syryjczyk" <bartlomiej@syryjczyk.name> for suggesting 154 the function 155 156 1570.10 2009-06-04 158 159- Added initial support for is_ipv6. ipv6 is new territory for me, so please 160 send in your bug reports to me so that I can make sure I get it done 161 correctly. 162 163 1640.09 2009-01-30 165 166- Removed AUTOLOAD 167 168 1690.08 2007-12-06 170 171- Fixed is_ipv4 to treat leading 0's in an ip as invalid, i.e.: 017.1.1.1 is 172 invalid. Thanks to Joshua D. Abraham <jabra@spl0it.org> for submitting the 173 patch 174 175 1760.07 2007-05-17 177 178- Added POD testing, and minor cleanup related to that 179 180 1810.06 2007-05-16 182 183- Updated contact information to be neil@neely.cx, this is a purely cosmetic change 184 185 1860.05 2007-03-06 187 188- Added is_multicast_ipv4 and is_linklocal_ipv4. Thanks to Matt Dainty 189 <matt@bodgit-n-scarper.com> for doing all the work 190 191 1920.04 2005-04-28 193 194- Removed perl version dependency in Makefile.PL 195 196 1970.03 2005-03-04 198 199- Minor fix to pod markup 200 201 2020.02 2005-03-04 203 204- Added is_private_ipv4 is_loopback_ipv4 is_testnet_ipv4 is_public_ipv4 205 206 2070.01 2005-03-03 208 209- Original version; created by h2xs 1.23 with options -AXn Data::Validate::IP 210