Così feci. Ma dopo un mese scopro che mi addebitano 25 euro per
traffico GPRS. Non nascondo che ero un po’ incazzato per questa
faccenda. Tra l’altro lavoravo per la Wind e giù a dirmi che non
dovevo usare Vodafone perché con Wind questo non sarebbe successo.

Beh, chiamo il centro servizi e chiedo spiegazioni. Mi fa “ha superato
il traffico telefonico limite”, e io “cosa? 500 mega? con una
connessione GPRS? guardi che sbaglia”, “no”. Ebbi a che fare con
diversi operatori (telefonisti). Le risposte erano varianti casuali.

Capitava che al tempo avessi su una Debian sul laptop .. decisi di
fare qualcosa per risolvere quest’arcano … /var/log/messages? esatto

Diedi un’occhiata col less …

Jul  3 12:34:29 fincos pppd[27733]: Sent 39566 bytes, received 415222 bytes.

No, forse è meglio “grep -e ‘pppd.*Sent’ messages|less”

4133 + 20392 + 39566 ...

… vabbè, ma non sono una calcolatrice, non io.

#!/usr/bin/perl -w

open(FILE,"<messages");

$bytes = 0;
while ($line = ) {
    if ($line =~ /pppd.*Sent\ ([0-9]+).*received\ ([0-9]+)/) {
	$bytes += $1 +$2;
    }
}

print "$bytes\n";
print $bytes/1024 ."\n";
print $bytes/1000 . "\n";
...
114166219
111490.448242188
114166.219

.. beh non si può dire che non mi sono dato da fare a scaricare .. ma
sono 114 Mega … facciamo 115. Richiamo il 190, controllo anche nel
sito 190.it …

Dopo un po’ di sbattimenti vengo a scoprire che mi avevano addebitato
il traffico fatto a Febbraio, mentre ero in treno, a navigare col
browser wap del mio Nokia 3650 (fu quello il giorno in cui scoprii il
motore wap di google)… Ma perché non l’avete detto?

Nel frattempo Fernando se ne era andato, io recuperai un modem ADSL e
lo collegai al computer, ma la connessione era a tempo, l’ADSL, e a
consumo, la GPRS. Per di più il lavoro per la wind era finito e dovevo
lavorare ad un sito web: ora la connessione era necessaria e i soldi
andavano scemando, dovevo controllare i consumi.

Mi venne in mente di far fare tutto in automatico di modo di poter
sapere quanto stavo spendendo, non superare il limite dei 500 mega
della vodafone, e limitare i costi della ADSL a tempo (che erano una
vera mazzata): la GPRS sempre attaccata, quando avevo bisogno di
scaricare avviavo l’adsl…

ppplogger versione 0.2

Decisi di usare questo programmino C che all’avvio della connessione
inseriva in un db MySQL i dati della connessione, e alla fine segnava
tutti i consumi (tempo e traffico). Il primo problema è che tale
ppplogger è un programma che era solo nella mia fantasia, quindi
dovevo scriverlo. Poi avevo bisogno di una qualche interfaccia per
fare facilmente le interrogazioni, l’avrei scritta in php, anzi, l’ho
scritta in php, ma poi mi accorsi che faceva schifo e non mi piaceva,
quindi decisi di scriverla in GTK.

Il pppd

Mi capita di sapere che sui *nix ci sono le pagine di manuale, quindi
leggendo quella del pppd vedo che posso impostare script di ip-up e di
ip-down (tipicamente nella distribuzione c’è già e chiama tutti i
programmi presenti nelle directories /etc/ppp/ip-up.d/ e
/etc/ppp/ip-down.d/), e vedo anche che tali script vengono chiamante
con delle variabili d’ambiente che riportano lo stato rispettivamente
dell’avvio e delle terminazione del demone pppd. Beh, nulla di più
banale.

Ok. Scrivo. Compilo. Le cose funzionano. L’interfaccia php fa schifo.

Il programma GTK … do’ un’occhiata al tutorial del sito gtk.org
.. questa libreria fa un po’ schifo a dir la verità … ma forse sono
un tipo difficile di natura. Provo libglade… non funziona .. segnali
non connessi .. funzioni non trovate … Ho speso un pomeriggio per
capire che quei simpaticoni della libglade le cose le scrivono tra le
righe: bisogna aggiungere -export-dynamic alle opzioni di
compilazione: `pkg-config –cflags –libs libglade-2.0` non lo fa!

Potrei usare una libreria per collegarmi al db mysql, la libgda, ma ho
già letto troppa documentazione, userò la libmysql come i comuni
mortali idioti come me.

Le cose che devo fare sono semplici:

  • connessioni ADSL
    • tempo dei consumi da giorno-ora a giorno-ora
    • costo (moltiplicare per costo a minuto o a secondo)
  • connessioni GPRS
    • traffico da giorno-ora a giorno-ora
    • costo (moltiplicare per costo a 1024 bytes o a 1000 bytes)

Deve esserci una finestra, deve esserci un selettore di connessione
(gprs, adsl .. una combo box), devono esserci 2 selettori di data-ora
(datetime picker), deve esserci due textbox per i costo e due combo
per decidere a che unità applicarlo, voglio un report totale e una
column view per la lista delle connessioni nel periodo scelto, voglio
un tasto per collegarsi al db, una finestra di dialogo per mettere i
parametri di connessione, un tasto per aggiornare la richiesta. Cioè:



Ora ho un po’ di log salvati (messages.?) vorrei parsarli e metter
dentro le connessioni effettuate nel db. Lo faccio col perl che per il
parsing va piuttosto bene.

Ok, il file reportcon.pl è in
http://repository.smartango.com/parsing_log/

Ora il resto è alla rinfusa in
http://repository.smartango.com/debian/

Ci sono i pacchetti debianizzati, sarebbe il caso di fare un
repository debian.

Home pppd-logger