Поскольку у меня лимитный интернет (предоплачено 500 мб в месяц, а платить больше абонентской платы не хочется), я решил написать на Python небольшую программу (не хочется скриптом называть, но по сути это скрипт. даже интерфейса нету) - демон, который висит в фоне и снимает показания счетчика. Не воды, а трафика. Когда достигнут лимит - предупреждает и отключает. Писал для себя, но решил выложить:
import commands, sys, time
device = 'ppp0' #network device. usually eth0 for ethernet, wlan0 for wifi, ppp0 for cdma/gsm
mb = 5 #allowed megabytes

def check(interface):
    pepyaka = open('/sys/class/net/' + device + '/statistics/rx_bytes', 'r')
    kb = int(pepyaka.read())/1024
    pepyaka.close()
    return kb

def fileupdate():
    f = open('spam', 'w')
    f.write(str(check(device)))
    f.close()

def fileread():
    f = open('spam', 'r')
    val = f.read()
    f.close()
    return val

while 1:
    fileupdate()
    foo = fileread()
    if int(foo) > 1024*mb:
        import dbus
        bus = dbus.SessionBus()
        proxy = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
        _dbus_notify = dbus.Interface(proxy, 'org.freedesktop.Notifications')
        commands.getoutput('/sbin/ifconfig ' + device + ' down')
        _dbus_notify.Notify('', 0, '', 'Stop!', 'Stop surfing internet. You are disconnected.', [], {'x': '0', 'y': '0'}, 5000)
        sys.exit(1)
    time.sleep(1)
P.S. Да, я сначала написал на Welinux, там получил несколько советов, улучшил приложение и получилось вот это.
Постовой: Почитай рассказ Зайди на dshdsh.ru Узнай о том, как работаютExt4 и Arch Linux
2009-06-06 21:32:08 Теги: python traffic linux | Комментарии
Я думаю, не у меня одного есть интернет на даче (CDMA EV-DO (SkyLink), GSM GPRS/EDGE). Не у меня одного лимитный тариф. А некоторые платят за трафик, находясь в городе. Появляется вопрос - а можно ли сжать трафик, уменьшить его потребление. Ответ - можно. С помощью toonel.net. Приложение написано на Java и работает на Linux, Windows, Mac OS, Symbian и др. ОС. Просто скачивай приложение под нужную платформу и запускай. Переходи на вкладку Mapping, выбирай набор настроек "127.0.0.1", кликай Apply. Снимок-toonelnetНет, еще не все. Дело в том, что Toonel представляет из себя прокси-сервер, установленный на локальной машине и сжимающий трафик. Но если нужно использовать удаленный прокси - можно прописать его на вкладке Web, там же и настроить сжатие картинок JPG и GIF. То есть нужно указать свой компьютер как прокси, т.е. 127.0.0.1 и порт 8080 - настройки, которые видны на вкладке Mapping. Снимок-Параметры proxy-серверов И все - теперь можно больше сидеть в интернете, съедая столько же трафика.
2009-05-29 23:50:43 Теги: traffic | Комментарии