ag4ve has asked for the wisdom of the Perl Monks concerning the following question:
How do I itterate to the next subnet of an IP address?
Ie, if I have 172.168.0.0/16, I'd like the next itteration to be 172.169.0.0/16
Or, if I have 10.0.0.0/24, the next should be 10.0.1.0/24
This should print 192.168.1.0 the second time - it errors:
#!/usr/bin/env perl use strict; use warnings; use Net::IP; my $ip = Net::IP->new('192.168.0.0/24'); print "Start ip [" . $ip->ip . "]\n"; print "start mask [" . $ip->prefixlen . "]\n"; $ip->set($ip->last_ip); $ip++; $ip->set($ip->ip . "/" . $ip->prefixlen); print "Start ip [" . $ip->ip . "]\n"; print "start mask [" . $ip->prefixlen . "]\n";
## ERROR
% ./t2.pl Start ip [192.168.0.0] start mask [24] Can't call method "ip" on an undefined value at ./t2.pl line 15.
Cross posted from beginners@perl.org: http://www.nntp.perl.org/group/perl.beginners/2013/05/msg122907.html
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Next subnet
by Athanasius (Archbishop) on May 25, 2013 at 07:45 UTC | |
by ag4ve (Monk) on May 25, 2013 at 21:18 UTC | |
|
Re: Next subnet
by FloydATC (Deacon) on May 25, 2013 at 09:21 UTC | |
by taint (Chaplain) on May 25, 2013 at 18:32 UTC | |
|
Re: Next subnet
by jakeease (Friar) on May 26, 2013 at 08:00 UTC | |
by jakeease (Friar) on May 26, 2013 at 08:08 UTC |