Net-IP-Match-Trie
view release on metacpan or search on metacpan
lib/Net/IP/Match/Trie/PP.pm view on Meta::CPAN
# name => [ cidr1, cidr2, ... ]
sub add {
my($self, $name, $cidrs) = @_;
my $ad;
my $nm = 0xFFFFFFFF;
### name: $name
for my $cidr (@$cidrs) {
my($ip, $len) = split m{/}, $cidr, 2;
$len ||= 32;
### cidr, ip, len: join ', ', $cidr, $ip, $len
$ad = unpack "N", inet_aton($ip);
$nm = itonetmask($len);
### ad : sprintf "%08X", $ad
### nm : sprintf "%08X", $nm
$ad = $ad & ($nm & 0xFFFFFFFF);
### ad&nm: sprintf "%08X", $ad
lib/Net/IP/Match/Trie/XS.pm view on Meta::CPAN
my $self = bless {}, $class;
$self->_initialize();
return $self;
}
# name => [ cidr1, cidr2, ... ]
sub add {
my($self, $name, $cidrs) = @_;
for my $cidr (@$cidrs) {
my($network, $netmask) = split m{/}, $cidr;
$netmask ||= 32;
$self->_add($name, $network, $netmask);
}
}
sub impl {
my($self) = @_;
return "XS";
}
( run in 1.387 second using v1.01-cache-2.11-cpan-71847e10f99 )