#python #linux
#python #linux
Вопрос:
Какой самый простой способ получить сетевую статистику (используемая пропускная способность, текущая скорость снижения / увеличения) с помощью Python.
Я понимаю, что это должен быть системный вызов / proc, но есть ли более простой способ или какой-либо инструмент, доступный в стандартных дистрибутивах * nix для этого?
Спасибо
ПРИМЕЧАНИЕ: я собираюсь использовать /proc / net /dev и проанализировать выходные данные 😎
Ответ №1:
Вы могли бы попробовать использовать http://pypi.python.org/pypi/pynetinfo / — для получения статистики потребуется расширение, но это должно быть довольно тривиально. Большая часть кода уже на месте.
В качестве альтернативы вы можете просто проанализировать вывод ip -s link show device_name
Комментарии:
1. Потрясающе, единственное, чего мне не хватает, это текущей скорости увеличения / уменьшения. Нужно ли мне это вычислять самому? Если да, то все в порядке, просто было интересно, было ли это уже на месте или нет
2. Вам нужно будет рассчитать это самостоятельно, поскольку «текущая скорость» на самом деле не существует, если вы не определяете период для измерения. Большинство программ просто часто опрашивают значения. (избегайте разветвления
ip
каждый раз, если вы хотите опрашивать значения довольно часто —ioctl()
в этом случае правильный путь) Также вы можете вызвать ioctl из самого python, если вы не хотите писать C. Но интерфейс, по крайней мере, сложный … docs.python.org/library/fcntl.html3. Спасибо! Я планирую разветвить pynetinfo и добавить информацию самостоятельно.