in reply to Collapsing IP addresses, an approach?
use strict; use warnings; my @ips = qw(1.2.3.4 1.2.3.5 1.2.3.7); my $first = shift @ips; my @identicals = split m/\./, $first; for (@ips){ my @b = split m/\./; for my $i (0 .. $#identicals){ if ($b[$i] ne $identicals[$i]){ splice @identicals, $i; last; } } } my @rest = (0) x (4 - @identicals); my $net = join('.', @identicals, @rest) . '/' . (8 * @identicals); print "$net\n";
If you want it to work bit by bit instead, you have to map the IPs to binary representation first.
If somebody suggests a good module, you should use that instead.
|
|---|