// Stai leggendo ...

L'angolo dello Smanettone

Ubuntu How-To: controllo soglia Naviga 3 con Network Manager

Sicuramente molti di voi utilizzeranno le tanto pubblicizzate “chiavette usb” per navigare in internet attraverso la rete umts/hsdpa con il vostro nuovo asus eeepc, acer aspire one o qualunque altro “fiammante” netbook, portatile o computer da tavolo. Vediamo quindi come sia possibile tenere sempre sotto controllo la propria spesa telefonica ed il traffico generato in modo da non “sforare” eventuali limiti imposti dall’operatore. Nella guida di oggi vedremo come impostare un semplice script di controllo perfettamente integrato con il Network Manager, il gestore unificato delle nostre distribuzioni “Debian based”, per evitare di sforare i 100 MB giornalieri offerti da H3g con la propria promozione Naviga 3.


ATTENZIONE:Questo articolo è stato aggiornato il 23/04/09 per risolvere un problema che in determinate circostanze faceva si che la connessione di rete non venisse interrotta al raggiungimento della soglia preimpostata.
Quanti utilizzassero il precedente script sono pregati di sostituirlo con il presente.




La possibilità di connettersi ad internet ovunque ci si trovi sfruttando la rete umts/hsdpa sta divenendo sempre più un costume “tecnologico” diffuso:
“chiavette usb”, modem dati, telefonini evoluti, netbook (acer aspire one e asus eeepc in primis) e notebook stanno cambiando profondamente le nostre abitudini, facendo letteralmente esplodere la nostra “fame” di connettività.

Ormai è sempre più comune incontrare studenti, ragazzi, ma anche distinti manager “armeggiare” con il proprio computer in treno, nelle stazioni e nelle aule studio, e questo soprattutto grazie alle numerose ed allettanti offerte dati che i principali operatori mobili commercializzano per utenze prepagate o in abbonamento.

A tempo, a traffico, adatte a quanti effettuano solo connessioni sporadiche o invece necessitano di scambiare grosse moli di bit: c’e’ n’è veramente per “tutti i gusti” ed esigenze (se necessitate di un’aiuto per scegliere quella che meglio risponde alle vostre esigenze questo articolo vi potrebbe aiutare).

Tra le tante, una di quelle capaci di godere del maggior successo presso questa nuova generazione di internauti “mobili” è certamente la promozione Naviga 3 nella versione 7 giorni, offerta che a fronte di una canone settimanale di 3 euro permette di navigare fino ad un massimo di 100 MB giornalieri (vi ricordo che concorre al raggiungimento del bundle tanto il traffico in ricezione che quello generato in uscita).

Naviga 3 che si caratterizza anche per un’altra peculiarità: il contatore del traffico non si azzera alla mezzanotte, ma bensi alla prima connessione effettuata al superamento delle 0.00 (il noto bug della mezzanotte).
Questo significa che qualora io mi connettessi alle 23.55 e smettessi di navigare alle 0.55 il traffico generato eroderebbe il bundle del giorno precedente.

Inutile sottolineare come tale “peculiarità” crei grossi problemi soprattutto per quanti utilizzano sistemi operativi “alternativi” e dunque non possono installare l’ utility rilasciata da H3g per la gestione della promozione.

Fortunatamente però la rete ci viene in soccorso e numerosi blog illustrano come sia possibile sfruttare tale bug a “nostro favore” (c’e’ chi ha scritto uno script, chi invece ha preferito sviluppare un’ applet): tutte ottime e funzionali soluzioni, ma che a mio avviso hanno il grosso limite di non essere perfettamente integrate con il nostro sistema operativo ed in particolare con Network Manager, il nuovo gestore di connessioni unificato che ormai trova posto in tutte le distribuzioni “Debian based”.

Ho dunque tratto spunto da quanto disponibile per scrivere un semplicissimo script che viene avviato in automatico ad ogni connessione: il suo compito è quello di accertarsi che questa sia effettuata con un dispositivo mobile (ppp0) ed in caso positivo che la stessa utilizzi i DNS di H3g.

Qualora entrambe le ipotesi siano soddisfatte (e dunque ci si sta connettendo con Tre) viene generato un file di log in /var/log/ che tiene traccia del traffico generato visualizzando un messaggio di ammonimento al raggiungimento dei 98 MB in modo da offrire all’utente la possibilità di terminare immediatamente la connessione dati.
Positivo “effetto collaterale” è poi quello di poter sfruttare il “bug della mezzanotte” senza alcun rischio di sforamento.

Apriamo dunque un terminale e digitiamo:

 sudo gedit /etc/NetworkManager/dispatcher.d/99naviga3 

quindi incolliamo quanto segue nel file di testo appena creato
IMPORTANTE: E’ necessario modificare la variabile USER indicando lo username che utilizzate per accedere al sistema (attualmente tale valore è ben)

#!/bin/bash

USER="ben" #### <- Valore da modificare inserendo lo username che utilizzate per accedere al sistema

IFACE="$1"
STATUS="$2"
INTERFACCIA="ppp0"
PHASE="up"
CONTROLLO=`cat /etc/resolv.conf | awk '/^nameserver/ {print $2; exit;}'`
LOG="/var/log/naviga3.log"
PPPSTATS="/usr/sbin/pppstats ppp0"
DATA=`date '+%d/%m/%Y'`
LOGCHEK=`cat /var/log/naviga3.log | awk '{print $2}'`
LIMITE="98566144"
TEMPO="15"

DNS="62.13.171.1"

### controllo se connesso tramite ppp0, quindi controllo se connesso con provider h3g ed in caso positivo avvio script computo traffico

function avvertimento {
if [ "$TRAFFICO" -ge "$LIMITE" ]; then
killall pppd

su $USER -c 'zenity --display=:0 --warning --text "ATTENZIONE! \n \
Il traffico disponibile per la navigazione web \n \
è quasi esaurito, DISCONNETTO !!!"'

fi

}

function naviga3 {
if [ -w $LOG -a `cat $LOG | cut -f1 -d' '` = $DATA ]; then
TRAFFICO_OLD=`cat $LOG | awk '{print $2}'`
fi

while :
do
TRAFFICO=$((TRAFFICO_OLD \
+ `$PPPSTATS | tail -n 1 | awk '{print $1}'` \
+ `$PPPSTATS | tail -n 1 | awk '{print $7}'`))

echo "$DATA $TRAFFICO" > $LOG

avvertimento
done

}

function controllo {
if [ "$IFACE" == "$INTERFACCIA" -a "$STATUS" == "$PHASE" -a "$CONTROLLO" == "$DNS" ] ; then

naviga3
sleep $TEMPO
controllo

fi

}

controllo

Ora assicuriamoci che il file sia eseguibile e di proprietà dell’utente root:

sudo chown root:root /etc/NetworkManager/dispatcher.d/99naviga3
sudo chmod +x /etc/NetworkManager/dispatcher.d/99naviga3

Come potete notare tutte le variabili sono enunciate all’inizio dello script e facilmente modificabili in base alle vostre esigenze.

Fatto questo non ci resta che riavviare ed utilizzare Network Manager come abbiamo sempre fatto. Buon divertimento :)

ATTENZIONE:Questo articolo è stato aggiornato il 23/04/09 per risolvere un problema che in determinate circostanze faceva si che la connessione di rete non venisse interrotta al raggiungimento della soglia preimpostata.
Quanti utilizzassero il precedente script sono pregati di sostituirlo con il presente.

Commenti

commenti


I commenti all'articolo

29 commenti for “Ubuntu How-To: controllo soglia Naviga 3 con Network Manager”

  1. i numeri da 1 a 61 devono figurare nel file di testo

    Commentato da ermanno | aprile 9, 2009, 22:12 |
  2. No!
    Per esempio la prima riga deve essere
    #!/bin/bash

    Commentato da Michele | aprile 10, 2009, 10:47 |
  3. Puoi mandarmi per email in formato testo la sequenza da trascrivere a terminale con il copia incolla e dirmi dove dare INVIO dopo la trascrizione? grazie

    Commentato da hermann | aprile 16, 2009, 22:58 |
  4. ciao ma non c’è una versione anche x MAC OS X?

    Commentato da alfio | aprile 23, 2009, 01:43 |
  5. interessante davvero – io uso la connessione a tempo (0.9€/ora) e mi piacerebbe avere un alert ogni 14minuti (la soglia è ogni 15min. di traffico); inoltre come si può fare ad imporre di usare solo la rete hsdpa e non swithcare su gprs/edge (molto più care)?
    grazie
    Andrea
    ps- se puoi gentilmente risp a wgenzoCHIOCCIOLAinwind.it

    Commentato da Andrea | giugno 18, 2009, 09:31 |
  6. molto interessante e completo il tuo articolo. Ci sarebbe la possibilità di far controllare il tempo anziché il traffico? Ho un problema simile a quello di Andrea. Quel che vorrei monitorare è il tempo nella quantità di 300 h/mese conteggiato al secondo (nuovo piano dati H3G), magari con un allarme che compare al raggiungimento delle 280 ore.
    Ti ringrazio anticipatamente
    Danilo
    kyki212@gmail.com

    Commentato da Danilo | giugno 19, 2009, 06:49 |
    • Ciao Danilo, rispondo sia a te che ad Andrea.
      Network manager permette di avviare qualsiasi script all’avvio della nostra connessione: io mi sono limitato a scrivere qualcosa “carpendo di qui e di la” che conteggiasse i mb consumati, ma sicuramente è possibile creare uno script che computi i minuti di connessione effettuati.
      Non resta che approfondire cosa e come: il forum di ubuntu-it è sicuramente un buon punto di partenza almeno per capire come cominciare a muoversi :P
      Poi ben felice di aiutarti nella scrittura e sistemazione dello script per quanto ne sono capace :)

      Commentato da skumpic | giugno 19, 2009, 14:52 |
  7. Chiedo scusa per il doppio post. Dimenticavo di chiedere se è possibile tramite questo tipo di script controllare anche il tipo di connessione (GSM/UMTS/HSDPA) ed eventualmente segnalarlo.
    Grazie
    Danilo

    Commentato da Danilo | giugno 19, 2009, 06:56 |
    • Si in network manager quando crei un nuovo punto di accesso è possibile specificare la rete (UMTS-GSM) ecc ecc
      In alternativa si può fare altrettanto con comandi AT da inviare alla scheda al momento della connessione:mi sono sempre ripromesso di scrivere qualcosa ma poi non ho mai avuto tempo per farlo !!
      Spero di porvi rimedio presto

      Commentato da skumpic | giugno 19, 2009, 14:54 |
  8. Ciao, bel lavoro!
    Volevo segnalarvi un programma grafico per linux per controllare il traffico dati e il tempo di connessione, con auto-sconnessione ed integrato con il NetworkManager.
    Qui c’è la discussione:

    Commentato da NK | agosto 6, 2009, 00:04 |
  9. sarebbe ottimo davvero avere un avviso dopo i 15 minuti come dice Andrea e connettersi solo se in GSM/UMTS/HSDPA

    Commentato da Marco | agosto 12, 2009, 23:00 |
    • La possibilità di limitare la rete alla sola UMTS-HSDPA dovrebbe essere “nativa” di network manager (c’e’ una apposita tendina nel menu di configurazione), anche se ad essere onesto non ne ho mai provato fino in fondo il funzionamento.
      Per quanto riguarda invece il computo del tempo la modifica non dovrebbe essere “impossibile”: basta sostituire al dettaglio del traffico un contatore di minuti …. se mi viene l’ “ispirazione” ci provo :)

      Commentato da skumpic | agosto 15, 2009, 20:54 |
  10. Io mi baso sulla pagina personale del sito, e uno script ma comodo.

    grazie per una soluzionegrillante e comleta.


    CELL="123445"
    PASS="password"

    wget --keep-session-cookies --save-cookies=cookie.txt --post-data="proposition=consumer&username=$CELL&password=$PASS" http://areaclienti.tre.it/selfcare/login > prima.htm

    wget --load-cookies=cookie.txt --keep-session-cookies --save-cookies=cookie.txt -O - http://areaclienti.tre.it/selfcare/areaclienti133/4552_soglie_ITA_LOGGED.xsl > pagina_tre.html

    RIMASTO=$(cat pagina_tre.html | grep ">Traffico Internet Naviga3" | egrep -o -e ".?[0-9]\..." | head -2 | tail -1 )

    echo "sono rimasti solo __ $RIMASTO mega di internet "

    Commentato da arutazzaps | novembre 2, 2009, 16:53 |
    • Grazie dello script !! Ottimo :)
      Personalmente ho messo da parte le soluzioni che facevano riferimento al traffico dell’area personale del sito h3g perchè in passato ho avuto un pò di problemi di “sottocredito” a causa di aggiornamenti non sempre tempestivi.
      Con lo script postato invece il traffico c’è lo computiamo da soli :)

      Commentato da skumpic | novembre 3, 2009, 00:43 |
  11. scusa ho seguito le istruzioni,ma non vedo il contascatti.Ma dove si trova?Uso ubuntu 9.10. e sono un neofita.grazie

    Commentato da maurizio | novembre 10, 2009, 12:57 |
    • Non compare alcun contascatti.
      Quando raggiungi il limite comparirà (anche se fino ad ora non ho mai verificato il funzionamento sotto Karmic, ma fino a Jaunty ha funzionato tutto correttamente) un pop-up di avviso e la connessione verrà automaticamente disattivata.

      PS. se vuoi sapere quanto traffico hai generato nel giorno apri il file di testo:
      /var/log/navig3.log

      Commentato da skumpic | novembre 10, 2009, 21:56 |
  12. vi segnalo questo utile tool per linux :
    http://netramon.sourceforge.net/

    Commentato da giopa | dicembre 14, 2009, 18:32 |
  13. i comandi con wget non fungono più, in particolare dal primo ricevo il seguente errore:

    HTTP request sent, awaiting response… 302 Moved Temporarily

    capita solo a me?

    Commentato da lucapost | dicembre 24, 2009, 14:19 |
  14. qui urge trovare una soluzione! si integrava così ben nei miei scriptini!

    Commentato da lucapost | dicembre 25, 2009, 18:36 |
  15. Sembra che abbiano sistemato, ora funziona tutto come prima

    Commentato da lucapost | gennaio 13, 2010, 15:03 |
  16. Grazie per lo script. Ne ho fatto una variante per gestire anzichè il traffico , il tempo (offerta a consumo superWeb Time della 3) che gestisce scatti da 15 minuti. Se vuoi te lo mando così lo pubblichi.

    ciao

    Commentato da FaBys | febbraio 11, 2010, 12:04 |
  17. Nel punto dell’articolo in cui si dice: “Inutile sottolineare come tale “peculiarità” crei grossi problemi soprattutto per quanti utilizzano sistemi operativi “alternativi” e dunque non possono installare l’ utility rilasciata da H3g per la gestione della promozione”.

    E’ possibile sapere qual è questa utility citata non utilizzando io sistemi alternativi ma un comunissimo windows xp?
    Grazie mille per chi potrà darmi delucidazioni in merito.

    Commentato da Rosella | ottobre 19, 2010, 10:05 |

Lascia un commento

Devi essere autenticato per lasciare un commento.