/usr/lib/x86_64-linux-gnu/perl5/5.22/auto/NetAddr/IP/re.al is in libnetaddr-ip-perl 4.078+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | # NOTE: Derived from blib/lib/NetAddr/IP.pm.
# Changes made here will be lost when autosplit is run again.
# See AutoSplit.pm.
package NetAddr::IP;
#line 1416 "blib/lib/NetAddr/IP.pm (autosplit into blib/lib/auto/NetAddr/IP/re.al)"
sub re ($)
{
return &re6 unless isIPv4($_[0]->{addr});
my $self = shift->network; # Insure a "zero" host part
my ($addr, $mlen) = ($self->addr, $self->masklen);
my @o = split('\.', $addr, 4);
my $octet= '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
my @r = @o;
my $d;
# for my $i (0 .. $#o)
# {
# warn "# $self: $r[$i] == $o[$i]\n";
# }
if ($mlen != 32)
{
if ($mlen > 24)
{
$d = 2 ** (32 - $mlen) - 1;
$r[3] = '(?:' . join('|', ($o[3]..$o[3] + $d)) . ')';
}
else
{
$r[3] = $octet;
if ($mlen > 16)
{
$d = 2 ** (24 - $mlen) - 1;
$r[2] = '(?:' . join('|', ($o[2]..$o[2] + $d)) . ')';
}
else
{
$r[2] = $octet;
if ($mlen > 8)
{
$d = 2 ** (16 - $mlen) - 1;
$r[1] = '(?:' . join('|', ($o[1]..$o[1] + $d)) . ')';
}
else
{
$r[1] = $octet;
if ($mlen > 0)
{
$d = 2 ** (8 - $mlen) - 1;
$r[0] = '(?:' . join('|', ($o[0] .. $o[0] + $d)) . ')';
}
else { $r[0] = $octet; }
}
}
}
}
### no digit before nor after (look-behind, look-ahead)
return "(?:(?<![0-9])$r[0]\\.$r[1]\\.$r[2]\\.$r[3](?![0-9]))";
}
# end of NetAddr::IP::re
1;
|