blob: 668fc9a4a4a3d3dc3c1524b4722a48bb1829be1a [file] [log] [blame]
Harald Welte5a3fa772008-12-29 05:35:02 +00001#!/usr/bin/perl
2
3use strict;
4use DBI;
5my $dbh = DBI->connect("dbi:SQLite:dbname=hlr.sqlite3","","");
6
7
8my %mcc_names;
9my %mcc_mnc_names;
10
Harald Welte730bc652010-01-01 15:08:38 +010011sub get_mcc_mnc_name($)
12{
13 my $mcc_mnc = shift;
14 my $ret = $mcc_mnc;
15
16 if ($mcc_mnc_names{$mcc_mnc} ne '') {
17 $ret = $mcc_mnc_names{$mcc_mnc};
18 }
19
20 return $ret;
21}
22
Harald Welte5a3fa772008-12-29 05:35:02 +000023sub read_networks($)
24{
25 my $filename = shift;
26 my $cur_name;
27
28 open(INFILE, $filename);
29 while (my $l = <INFILE>) {
30 chomp($l);
31 if ($l =~ /^#/) {
32 next;
33 }
34 if ($l =~ /^\t/) {
35 my ($mcc, $mnc, $brand, $r) = split(' ', $l, 4);
36 #printf("%s|%s|%s\n", $mcc, $mnc, $brand);
37 $mcc_mnc_names{"$mcc-$mnc"} = $brand;
38 $mcc_names{$mcc} = $cur_name;
39 } elsif ($l =~ /^(\w\w)\t(.*)/) {
40 #printf("%s|%s\n", $1, $2);
41 $cur_name = $2;
42 }
43 }
44 close(INFILE);
45}
46
47read_networks("networks.tab");
48
49my %oper_count;
50my %country_count;
51
Harald Welte730bc652010-01-01 15:08:38 +010052#my $sth = $dbh->prepare("SELECT imsi FROM subscriber where authorized=1");
Harald Welte5a3fa772008-12-29 05:35:02 +000053my $sth = $dbh->prepare("SELECT imsi FROM subscriber");
54
55$sth->execute();
56
57while (my $href = $sth->fetchrow_hashref) {
58 my ($mcc, $mnc) = $$href{imsi} =~ /(\d{3})(\d{2}).*/;
59 #printf("%s %s-%s \n", $$href{imsi}, $mcc, $mnc);
60 $oper_count{"$mcc-$mnc"}++;
61 $country_count{$mcc}++;
62}
63
64
Harald Welte730bc652010-01-01 15:08:38 +010065foreach my $c (sort{$country_count{$b} <=> $country_count{$a}} keys %country_count) {
Harald Welte5a3fa772008-12-29 05:35:02 +000066 printf("%s: %d\n", $mcc_names{$c}, $country_count{$c});
Harald Welte730bc652010-01-01 15:08:38 +010067
68 foreach my $k (sort{$oper_count{$b} <=> $oper_count{$a}} keys %oper_count) {
69 if ($k =~ /^$c-/) {
70 printf("\t%s: %d\n", get_mcc_mnc_name($k), $oper_count{$k});
71 }
Harald Welte5a3fa772008-12-29 05:35:02 +000072 }
Harald Welte730bc652010-01-01 15:08:38 +010073}