Назад | Перейти на главную страницу

Эффективная библиотека Python для запроса состояния РАБОТА данного сетевого интерфейса в Linux?

Я хочу эффективно отслеживать состояние РАБОТА определенного сетевого интерфейса без постоянного вызова ifconfig каждую секунду или около того, и анализирует его вывод. Поэтому я спрашиваю, знает ли кто-нибудь способ эффективного получения этой информации о состоянии в Python в Linux.

я знаю netifaces, но он не дает мне состояния интерфейса. Так что я не знаю, доступен ли интерфейс просто или действительно онлайн / работает.

Затем я заглянул в psutil, но если бы я что-то там не пропустил, у него тоже нет доступа к такому состоянию сетевого интерфейса. Если я ошибаюсь, я буду рад получить исправление и конкретную информацию о том, как достичь своей цели.

Оказывается, чтение /sys/class/net/eth0/carrier работает достаточно хорошо и качественно. В частности, нет необходимости постоянно запускать open()/readline()/close() последовательность, так как это гораздо менее эффективно, чем просто open() только один раз, а затем повторно seek(0) с последующим readline().

Все это работает даже при вытягивании и горячем подключении сетевого интерфейса.

А flush() не является необходимым и в этом случае ничего не сделает, так как open(...,'r') только для чтения и flush() согласно официальной документации Python, в этом режиме нельзя работать.