В зависимости от того, чего вы хотите достичь, вам, вероятно, проще всего вызвать системную команду ping.
Использование модуля подпроцесса - лучший способ сделать это, хотя вы должны помнить, что команда ping различна в разных операционных системах!
import subprocess
host = "www.google.com"
ping = subprocess.Popen(
["ping", "-c", "4", host],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE
)
out, error = ping.communicate()
print out
Вам не нужно беспокоиться о побегах. Например ..
host = "google.com; `echo test`
.. будет не выполнять команду эха.
Теперь, чтобы получить результаты проверки, вы можете проанализировать переменную out
. Пример вывода:
round-trip min/avg/max/stddev = 248.139/249.474/250.530/0.896 ms
Пример регулярного выражения:
import re
matcher = re.compile("round-trip min/avg/max/stddev = (\d+.\d+)/(\d+.\d+)/(\d+.\d+)/(\d+.\d+)")
print matcher.search(out).groups()
# ('248.139', '249.474', '250.530', '0.896')
Опять же, помните, что вывод будет зависеть от операционной системы (и даже от версии ping
). Это не идеально, но во многих ситуациях оно будет работать нормально (если вы знаете, на каких машинах будет работать скрипт)