我正在尝试使用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()
但这不起作用吗?
答案 0 :(得分:3)
您不能按照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;