первый IP следующего блока с Net :: IP - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь использовать модуль Net :: IP из cpan

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()

но это не работает, любая идея?

1 Ответ

0 голосов
/ 05 сентября 2018

Вы не можете увеличить последний ip, как указано в Net :: IP document .

Оператор ++ возвращает 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...