1Revision history for Perl module Net::Netmask 2 32.0001 2021-03-29 4 - BUGFIX: Return a netmask length of 0 whenever parsing an invalid 5 digit. 6 - Add "safe_new()" method to make it more clear what new2() does. Note 7 that this executes the same code as new2(). 8 92.0000 2021-03-29 10 11 - SECURITY: IPv4 addresses with leading zeros are no longer allowed. 12 They will return a parse error like any invalid IP address. 13 - SECURITY: 10.0.0, 10.0, and 10 address portions now by default return 14 a parse error. This can be overriden by calling new() like: 15 Net::Netmask->new2('10/8', shortnet => 1); # or new() 16 or 17 Net::Netmask->new2('10', '8', shortnet => 1); # or new() 18 19 There is also a package-level variable that can change the default 20 when "shortnet" isn't used passed into the constructor. Usage: 21 local $Net::Netmask::SHORTNET_DEFAULT = 1; 22 Net::Netmask->new('10', '8'); # or new2() 23 241.9104 2018-06-27 25 26 - IPv6 support is now GA! 27 281.9104 2018-06-26 29 30 - DEV release only 31 - IPv6 support 32 - Add Code of Conduct 33 341.9103 2018-06-18 35 36 - Use ASCII-like regex matching (Github #4) 37 - Convert tests to Test2 38 - Pass perlcritic tests 39 - Pass Kwalitee tests 40 - Add contributor information 41 - Add protocol() method (just a stub today that will always return 42 'IPv4') 43 441.9102 2018-06-18 45 46 - DEV release only 47 - Contains most changes that made it to 1.9103. 48 491.9101 2018-06-02 50 51 - fix precision issue on long-double platforms (BAYMAX) 52 - Convert to use Dist::Zilla 53 - Formatting changes 54 551.9100 2018-06-02 56 57 - DEV release only 58 - fix precision issue on long-double platforms (BAYMAX) 59 - Convert to dist.zilla 60 - Minor formatting changes 61 621.9022 2015-05-05 63 64 - Changes from adamherzog: minor cleanups plus 65 - A bunch of addtional tests 66 - A couple of small code fixes 67 681.9021 2014-07-17 69 70 - Spelling fix in documentation. 71 721.9019 2013-10-01 73 74 - Rename $b to $bits so that netmask can be sorted. Change mostly 75 from https://rt.cpan.org/Ticket/Display.html?id=76939 76 771.9018 2013-09-26 78 79 - Minor MANIFEST fix. 80 811.9017 2013-09-20 82 83 - Add network split() function. 84 - Re-arrange the distribution a bit. 85 861.9016 2011-03-22 87 88 - Fix bug #46996: warnings issued for bad input. 89 - Fix bug #43348: use POSIX::floor() instead of int() 90 - Rewrite netmask.t to use Test::More 91 921.9015 2006-11-30 93 94 - Fix bug # 22662 reported by grjones at gmail: cidrs2inverse 95 wouldn't notice /32-sized leftovers. 96 971.9014 2006-10-13 98 99 - Fix bug # 22085 reported by grjones at gmail: cidrs2inverse 100 - wouldn't notice /32-sized holes. 101 1021.9013 2006-09-06 103 104 - Added the nextblock() method as suggested by Robert Drake <rdrake at stayonline.net> 105 106 - Bugfix: it couldn't parse 10/8 or 127/8 107 1081.9011 2004-05-31 109 110 - Some speed improvements from Todd R. Eigenschink <todd at tekinteractive.com> 111 1121.9009 2004-04-12 113 114 - Fix to netmasks.t for compatability with older perls 115 1161.9008 2004-04-06 117 118 - Added cidrs2inverse() which will find the gaps in a list of blocks. 119 - Based on a request from Howard Jones <howard.jones at network-i.net> 120 the tag() method was added. It allows you to store your own data in 121 a Net::Netmask object. (Of course, you could have anyway as long as you 122 didn't use the keys 'IBASE' or 'BITS') 123 - Long ago, Alexandros M Manoussakis <amm2 at ini.cmu.edu> reported a bug 124 that findAllNetblock would often return the same block multiple times. 125 Fixed. 126 - Based on requests from Alexandros M Manoussakis <amm2 at ini.cmu.edu> 127 and Lamprecht Andreas <andreas.a.lamprecht at siemens.com> the 128 undefined behavior for overlapping blocks with cidrs2contiglists 129 is no longer. Such blocks will be in the same sublist. 130 - Based on a requests from Tom Rudnick <trudnick at itc.nrcs.usda.gov> 131 and Anthony Pardini <tony at pardini.org> new function was added: 132 cidrs2cidrs(). cidrs2cidrs will condense a set of netblocks by 133 combining blocks together that make up larger blocks. 134 - Anthony Pardini <tony at pardini.org>, Frank Tegtmeyer <fte @ fte.to> 135 and George Walker <gwalker at irish-times.com> pointed me to a bug 136 with the contains() method. Fixed. 137 1381.9007 2004-01-01 139 140 - At Max Baker <max at warped.org>'s request, the "require 5.6.1" 141 was removed for better compatability with older perl versions. 142 1431.9006 2003-12-05 144 145 - Removed '@'s from this file. 146 1471.9005 2003-11-29 148 149 - Matija Papec <matija at post.hinet.hr> suggested that I do a 150 Schwartzian transform on the IP address sort function. I 151 tried it. It's faster. Sort function replaced. 152 153 - Added a sort_network_blocks function. 154 - Added a contains() function to test if one block fits within 155 another. 156 - Peter Chen <petechen at netilla.com> was concerned about 157 using an illegal bitmask. Now checked. 158 - Long ago, Alexandros M Manoussakis <amm2 at ini.cmu.edu> noted that 159 could be exported even though it was in EXPORT_OK. Fixed. 160 1611.9004 2003-05-28 162 163 - Martin Lorensen <martin at lorensen.dk>: make 'any' a synonym for 164 'default'. 165 - Bugfix (aslo from Martin): fix the require to accept 5.6.1 166 1671.9003 2003-05-26 168 169 - Roman Shishkin <roman at rt.mipt.ru> provided several (public exported) 170 functions for looking at network tables: 171 dumpNetworkTable() 172 checkNetblock() 173 Inspired: changing findOuterNetblock() so it can take a block 174 as it's IP address. 175 - Bugfix: notice that '218.0.0.0 - 221.255.255.255' isn't a valid 176 netmask. Reported by Dan Wright <wright at smx.pair.com>. 177 - Bugfix: could not specify network '0.0.0.0-255.255.255.255'. Fix 178 from Dominic Mitchell <dom at semantico.com>. 179 - Added ->sameblock() from Martin Lorensen <martin at lorensen.dk> 180 - Added ->cmpblocks(). 181 - Added overloaded stringification so that blocks stringify to their 182 description. 183 - Added overloaded block comparision so that blocks can be compared and 184 sorted. 185 - Added hostmask syntax a.b.c.d#hostmask - Martin Lorensen <martin at lorensen.dk> 186 - Bugfix: t/badnets.t was missing from the MANIFEST. 187 - Some spelling and typo mistakes fixed in the documentation. 188 1891.9002 2001-11-12 190 191 - Change the license to make the Debian folks happy. Interface through 192 Jonas Smedegaard <dr at jones.dk>. 193 1941.9001 2001-09-29 195 196 - Sapient Fridge <sapient.fridge at WaCkY.zzn.com> and Alexander Karptsov 197 <karp at visti.net> sent a patch for a bug in range2cidrlist. The 198 last IP in the range was skipped. 199 - Sam Denton <sdenton at wantec.com> requested support for 200 a.b.c.d/mask.mask.mask.mask. 201 - Sam also sent a request that I include the world's fastest 202 sort-by-ip-address-in-perl function in Net::Netmask as there didn't 203 seem to be a better place to put it. I've included it. The function 204 in question was found/benchmarked by John Porter and written about 205 in the Perl-Users Digest, Issue 3860, Volume 8. 206 - Sam sent a patch to eliminate a couple of trailing spaces in 207 the error codes. 208 - My IP address are now 216.240.32/19 instead of 140.174.82/19 and 209 thus I've changed the examples in the pod. :-) 210 2111.9 2001-05-15 212 213 - Added deleteNetblock to match storeNetblock. 214 - Carol Lerche <cafl at securify.com> contributed findOuterNetblock() 215 and findAllNetblocks(). 216 - Kevin Baker <kevin at apnic.net> sent in patches that suggested a new 217 handling of error conditions; extra error conditions to test for; and 218 a test script to exercise the error conditions. 219 - Bruce Peikon <Bruce.Peikon at msdw.com> sent a contribution which suggested 220 that enumerate could do so by network. 221 - Dominic Mitchell <dom at semantico.com> sent in code that suggested the 222 creation of cidrs2contiglists() and range2cidrlist(). 223 - A couple of documentation fixes from Igor Vinokurov <igor at rtsnet.ru>. 224 2251.8 1999-09-20 226 227 - Modified the match() method to return the position within the block. 228 2291.7 1999-09-15 230 231 - Added support for understanding network blocks in the form that the 232 whois database uses: FirstIP-LastIP. 233 2341.6 1999-03-27 235 236 - Jochen Wiedmann <joe at ispsoft.de> contributed a function to test an IP 237 address and a block to test see if the IP address is in the block. 238 Accordingly, there is now a match() method. 239 - Rob Walker <rob at varesearch.com> contributed a function to return the 240 first usable adress in a block. Instead of using that, I added a function 241 to return the nth address in a block. There is now an nth() function. 242 2431.4 1998-11-29 244 245 - Jean-Luc Szpyrka <Jean-Luc.Szpyrka at sophia.inria.fr> requested that a 246 function be provided that returns the oposite of a netmask. Accordingly, 247 there is now the hostmask() method. 248 - http://faqchest.dynhost.com/prgm/perlu-l/perl-98/perl-9809/perl-980905/perl98093023_24256.html 249