Модули или функции для получения информации из сетевого интерфейса в Python - PullRequest
1 голос
/ 02 февраля 2011

Я написал небольшое приложение, которое я использую с терминала в Linux, чтобы отслеживать объем данных, которые я использую в сеансе подключения к Интернету (я храню информацию в MongoDB).Данные вверх и вниз я записываю вручную и читаю их (визуально) из системы монитора. Дело в том, что я хотел бы больше автоматизировать свое приложение и заставить его считывать данные, потребляемые вверх и вниз из интерфейсной сети, к которой я подключаюсьИнтернет (в моем случае ppp0), но суть в том, что я не нахожу способ сделать в Python.Я предполагаю, что у Python есть модуль для импорта или что-то, что позволяет мне делать то, что я хочу, но до сих пор я исследовал, что не нашел способа сделать это.

Вам известен какой-либо модуль, функция или подобноечто позволяет мне делать в Python то, что я хочу?

любой пример?

заранее спасибо

1 Ответ

0 голосов
/ 06 февраля 2011

Ну, я отвечаю сам

Нашел в сообществе PyAr этот рецепт мне, как перчатка, собирающаяся делать то, что мы хотели, без необходимости использовать дополнительные команды или другие приложения.

Немного изменив код для лучшего соответствия моему приложению и добавив функцию, которая comvierta байтов в мегабайтах, оставьте это так:

def bytestomb(b):
    mb = float(b) / (1024*1024)
    return mb


def bytessubidatransferidos():
    interface= 'ppp0'
    for line in open('/proc/net/dev', 'r'):
        if interface in line:
            data = line.split('%s:' % interface)[1].split()
            tx_bytes =  (data[8])
    return bytestomb(tx_bytes)


def bytesbajadatransferidos():
    interface= 'ppp0'
    for line in open('/proc/net/dev', 'r'):
        if interface in line:
            data = line.split('%s:' % interface)[1].split()
            rx_bytes = (data[0])
    return bytestomb(rx_bytes)


print bytessubidatransferidos()
print bytesbajadatransferidos()
...