Il mio profilo Eolo ha un limite di traffico di 40 GB mensili al massimo della velocità (20/2 Mbit/s). Superato questo limite la velocità viene ridotta a 5/0,5 Mbit.

Eolo fornisce un’applicazione per visualizzare il traffico rimanente, ma la trovo piuttosto scarsa di informazioni. Siccome il codice è su Github, pur non conoscendo nulla di Adobe Flex ho cercato di capire come funziona e scoperto che i dati vengono recuperati in formato JSON.

Geektool + Eolo

Questo è lo script che attualmente utilizzo per tenere d’occhio il traffico con GeekTool (i programmatori Python sono pregati di ignorare la bruttezza del codice, disponibile anche su GitHub).

#! /usr/bin/env python

import json
import urllib2
from datetime import datetime

eolo_url = "https://care.ngi.it/ws/ws.asp?a=get.quota"
try:
    response = urllib2.urlopen(eolo_url)
    json_data = json.load(response)
    if json_data['response']['status'] == 200:
        data = json_data['data']
        # Days before reset
        cycle_length = 30
        end_date = datetime.strptime(data['nextReset'], "%Y-%m-%d %H:%M:%S")
        remaining_days = abs((end_date - datetime.today()).days);
        if cycle_length - remaining_days > 0:
            used_days = cycle_length - remaining_days
        else:
            used_days = 1
        # Data quota/usage
        quota_mb = data['quota'] / 1024
        used_mb = data['used'] / 1024
        remaining_mb = quota_mb - used_mb
        # Print values
        print "Rimamenti:        %5.0f MB" % remaining_mb
        print "Quota:            %5.0f MB" % quota_mb
        print "Giorni:              %2.0f g" % remaining_days
        # Avoid division by 0
        if remaining_days == 0:
            remaining_days = 1;
        print "Media consumo:    %5.0f MB/g" % \
              (used_mb / used_days)
        print "Media dispon.:    %5.0f MB/g" % \
              (remaining_mb / remaining_days)
except urllib2.HTTPError, err:
    if err.code == 403:
        print "Errore 403 - Connessione non Eolo"
    else:
        raise
except Exception as e:
    print "Errore lettura JSON da %s:\n %s" % (eolo_url, e)

Un altro script mi permette di verificare il gateway in uso (per scaricare file di grandi dimensioni e non urgenti posso usare l’ADSL standard).

#! /usr/bin/env bash

printf "IP Address: `ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'`\n"
printf "Gateway:    `route -n get default | grep gateway | awk '{print $2}'`\n"

Il secondo script è stato aggiunto dopo essermi accorto di aver scaricato 5 GB di XCode e aggiornamenti pensando di essere collegato all’ADSL. Su Windows mi serve solo visualizzare il gateway, e Rainmaker fa il suo lavoro piuttosto bene.


4 commenti/trackback a “Eolo: script per geektool (traffico)”

  1. Alberto scrive:

    Utilissimo, grazie!
    Non avevo giusto voglia di installare roba per vedere i dati della mia EOLO e il tuo script risolve egregiamente la situazione.

    Correggi la formula della madia consumo: ci vuole used_mb al posto di remaining_mb 😉

    /AL

  2. flod scrive:

    Grazie mille, corretto e già che c’ero caricati su Github.

  3. mirco scrive:

    bella cosa, per chi come me ci capisce poco di script e ha Windows ;( c’è qualche soluzione per avere questa opportunità?

  4. flod scrive:

    Su OS X Python è preinstallato, su Linux credo lo sia quasi sempre, per cui è semplicissimo eseguire lo script.
    Su Windows non credo ci siano molte alternative, lo script andrebbe riscritto in qualcosa di compatibile.

Trackback e pingback

  1. Nessun trackback o pingback disponibile per questo articolo

Non è possibile inserire nuovi commenti. I commenti vengono disattivati automaticamente dopo 60 giorni.