mirror of
git://git.code.sf.net/p/xtables-addons/xtables-addons
synced 2025-09-08 05:34:58 +02:00
geoipdb builder: separate into functions
This commit is contained in:
@@ -35,29 +35,44 @@ foreach (qw(LE BE)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (my $row = $csv->getline(*ARGV)) {
|
&collect();
|
||||||
if (!defined($country{$row->[4]})) {
|
&dump();
|
||||||
$country{$row->[4]} = {
|
|
||||||
name => $row->[5],
|
sub collect
|
||||||
pool_v4 => [],
|
{
|
||||||
pool_v6 => [],
|
while (my $row = $csv->getline(*ARGV)) {
|
||||||
};
|
if (!defined($country{$row->[4]})) {
|
||||||
|
$country{$row->[4]} = {
|
||||||
|
name => $row->[5],
|
||||||
|
pool_v4 => [],
|
||||||
|
pool_v6 => [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
my $c = $country{$row->[4]};
|
||||||
|
if ($row->[0] =~ /:/) {
|
||||||
|
push(@{$c->{pool_v6}},
|
||||||
|
[&ip6_pack($row->[0]), &ip6_pack($row->[1])]);
|
||||||
|
} else {
|
||||||
|
push(@{$c->{pool_v4}}, [$row->[2], $row->[3]]);
|
||||||
|
}
|
||||||
|
if ($. % 4096 == 0) {
|
||||||
|
print STDERR "\r\e[2K$. entries";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
my $c = $country{$row->[4]};
|
|
||||||
if ($row->[0] =~ /:/) {
|
print STDERR "\r\e[2K$. entries total\n";
|
||||||
push(@{$c->{pool_v6}},
|
}
|
||||||
[&ip6_pack($row->[0]), &ip6_pack($row->[1])]);
|
|
||||||
} else {
|
sub dump
|
||||||
push(@{$c->{pool_v4}}, [$row->[2], $row->[3]]);
|
{
|
||||||
}
|
foreach my $iso_code (sort keys %country) {
|
||||||
if ($. % 4096 == 0) {
|
&dump_one($iso_code);
|
||||||
print STDERR "\r\e[2K$. entries";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
print STDERR "\r\e[2K$. entries total\n";
|
sub dump_one
|
||||||
|
{
|
||||||
foreach my $iso_code (sort keys %country) {
|
my $iso_code = shift @_;
|
||||||
my($file, $fh_le, $fh_be);
|
my($file, $fh_le, $fh_be);
|
||||||
|
|
||||||
printf "%5u IPv6 ranges for %s %s\n",
|
printf "%5u IPv6 ranges for %s %s\n",
|
||||||
|
Reference in New Issue
Block a user