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