blob: a3fd2b81ef63f892d093d1386030d696eb13a0c8 [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
11sub read_networks($)
12{
13 my $filename = shift;
14 my $cur_name;
15
16 open(INFILE, $filename);
17 while (my $l = <INFILE>) {
18 chomp($l);
19 if ($l =~ /^#/) {
20 next;
21 }
22 if ($l =~ /^\t/) {
23 my ($mcc, $mnc, $brand, $r) = split(' ', $l, 4);
24 #printf("%s|%s|%s\n", $mcc, $mnc, $brand);
25 $mcc_mnc_names{"$mcc-$mnc"} = $brand;
26 $mcc_names{$mcc} = $cur_name;
27 } elsif ($l =~ /^(\w\w)\t(.*)/) {
28 #printf("%s|%s\n", $1, $2);
29 $cur_name = $2;
30 }
31 }
32 close(INFILE);
33}
34
35read_networks("networks.tab");
36
37my %oper_count;
38my %country_count;
39
40my $sth = $dbh->prepare("SELECT imsi FROM subscriber");
41
42$sth->execute();
43
44while (my $href = $sth->fetchrow_hashref) {
45 my ($mcc, $mnc) = $$href{imsi} =~ /(\d{3})(\d{2}).*/;
46 #printf("%s %s-%s \n", $$href{imsi}, $mcc, $mnc);
47 $oper_count{"$mcc-$mnc"}++;
48 $country_count{$mcc}++;
49}
50
51
52foreach my $c (keys %country_count) {
53 printf("%s: %d\n", $mcc_names{$c}, $country_count{$c});
54}
55 foreach my $k (keys %oper_count) {
56 printf("\t%s: %d\n", $mcc_mnc_names{$k}, $oper_count{$k});
57 }
58#//}