Измерение задержки ping сервера - Python

У меня есть список IP-адресов сервера, я должен проверить, онлайн ли каждый и какой длины задержка.

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


Какие-либо идеи?

6
задан RadiantHex 26 March 2010 в 17:26
поделиться

2 ответа

Если вы уже знакомы с синтаксическим анализом строк, вы можете использовать модуль подпроцесса, чтобы преобразовать данные, которые вы ищете, в строку, например:

>>> import subprocess
>>> p = subprocess.Popen(["ping.exe","www.google.com"], stdout = subprocess.PIPE)
>>> print p.communicate()[0]

Pinging www.l.google.com [209.85.225.99] with 32 bytes of data:

Reply from 209.85.225.99: bytes=32 time=59ms TTL=52
Reply from 209.85.225.99: bytes=32 time=64ms TTL=52
Reply from 209.85.225.99: bytes=32 time=104ms TTL=52
Reply from 209.85.225.99: bytes=32 time=64ms TTL=52

Ping statistics for 209.85.225.99:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 59ms, Maximum = 104ms, Average = 72ms
5
ответ дан 8 December 2019 в 18:34
поделиться

Если вы хотите избежать реализации всех деталей сетевой связи, вы, вероятно, можете попытаться создать что-то поверх fping :

fping - подобная программа, которая использует эхо-запрос протокола управляющих сообщений Интернета (ICMP), чтобы определить, отвечает ли целевой хост. fping отличается от ping тем, что вы можете указать любое количество целей в командной строке или указать файл , содержащий списки целей для {{ 1}} пинг. Вместо отправки одной цели до тех пор, пока она не истечет или не ответит, fping отправит пакет проверки связи и перейдет к следующей цели циклически.

4
ответ дан 8 December 2019 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: