@omichkun

Как получить вывод команды ping в Python?

Для изучения питона попробовал написать свой велосипед - пинговалку определенного хоста.
Собственно сама команда пинга выглядит вот так (нашел ее на каком-то сайте):
result=subprocess.call(["ping",'-n','1', str(address)],shell=True,stdout=subprocess.PIPE)

Как я понял stdout=subprocess.PIPE - это перехват вывода результатов команды.
Так вот я хочу спарсить этот результат и выдавать предупреждение не только по пристутствию/отсутствию пинга, но и по его длительности.

Как мне завести результат выдачи команды ping в переменную для дальнейшего анализа?
  • Вопрос задан
  • 11944 просмотра
Пригласить эксперта
Ответы на вопрос 2
@kvothe
Использовать Popen. call() возвращает код завершения команды.
Ответ написан
Комментировать
@alexzaporozhets
Попробуй использовать http://amoffat.github.io/sh/

>>> from sh import ping
>>> res = ping("-c", 1, 'yandex.ru')
>>> res
PING yandex.ru (93.158.134.11): 56 data bytes
64 bytes from 93.158.134.11: icmp_seq=0 ttl=57 time=34.563 ms

--- yandex.ru ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 34.563/34.563/34.563/0.000 ms
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы