add small statistics script for HLR database

This commit is contained in:
Harald Welte 2008-12-29 05:35:02 +00:00
parent d119dd1e75
commit 5a3fa774b1
1 changed files with 58 additions and 0 deletions

58
tools/hlrstat.pl Executable file
View File

@ -0,0 +1,58 @@
#!/usr/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect("dbi:SQLite:dbname=hlr.sqlite3","","");
my %mcc_names;
my %mcc_mnc_names;
sub read_networks($)
{
my $filename = shift;
my $cur_name;
open(INFILE, $filename);
while (my $l = <INFILE>) {
chomp($l);
if ($l =~ /^#/) {
next;
}
if ($l =~ /^\t/) {
my ($mcc, $mnc, $brand, $r) = split(' ', $l, 4);
#printf("%s|%s|%s\n", $mcc, $mnc, $brand);
$mcc_mnc_names{"$mcc-$mnc"} = $brand;
$mcc_names{$mcc} = $cur_name;
} elsif ($l =~ /^(\w\w)\t(.*)/) {
#printf("%s|%s\n", $1, $2);
$cur_name = $2;
}
}
close(INFILE);
}
read_networks("networks.tab");
my %oper_count;
my %country_count;
my $sth = $dbh->prepare("SELECT imsi FROM subscriber");
$sth->execute();
while (my $href = $sth->fetchrow_hashref) {
my ($mcc, $mnc) = $$href{imsi} =~ /(\d{3})(\d{2}).*/;
#printf("%s %s-%s \n", $$href{imsi}, $mcc, $mnc);
$oper_count{"$mcc-$mnc"}++;
$country_count{$mcc}++;
}
foreach my $c (keys %country_count) {
printf("%s: %d\n", $mcc_names{$c}, $country_count{$c});
}
foreach my $k (keys %oper_count) {
printf("\t%s: %d\n", $mcc_mnc_names{$k}, $oper_count{$k});
}
#//}