我正在尝试使用cpan中的Net :: IP模块
my $block = new Net::IP('194.158.1.0/24');
$block->ip() # get the first ip on the block
$block->last_ip() #get the last ip on the block
我怎么能增加最后一个ip,因为我想知道下一个块的第一个ip
我尝试过类似的东西:
++$block->last_ip()
但这不是任何想法吗?
你不能增加Net::IP document中提到的最后一个ip。
当达到范围的最后一个地址时,++运算符返回undef。
最简单的方法是将最后一个ip转换为整数,增量,然后从中创建一个全新的Net :: IP对象。
#!/usr/bin/perl
use strict;
use warnings;
use Net::IP qw(ip_inttobin ip_bintoip);
my $block = Net::IP->new('194.158.1.0/24');
my $next_bin = ip_inttobin($block->last_int + 1, $block->version);
my $next = Net::IP->new(ip_bintoip($next_bin, $block->version));
print $next->ip;