Я сделал веб-приложение (python / django), которое пингует разные серверы и возвращает значения ping.вот ссылка .
Имеет функцию pingserver (ip, sev), которая использует os / system fping (может использоваться с / bin / ping) для получения выходных данных и полосы для получения значения.
def pingserver(ip,sev):
ping_response = subprocess.Popen(["/usr/bin/fping","-c1","-t400",ip], stdout=subprocess.PIPE).stdout.read()
latency = str(ping_response)
ping_value=latency.split('ms')[0].split(',')[-1]
if len(ping_value) <= 3:
return(sev,'unknown')
else:
return(sev,ping_value)
он отлично работает на моем локальном сервере, но код на хост-машине не работает, потому что / bin / fping не завершается.Я не могу сделать следующее:
установить fping или ping (у меня нет прав root на сервере)
не может использовать pyping (нужен rootдля создания необработанного сокета)
не может использовать исполняемые файлы ping / fping (требуется разрешение root)
не может использовать http.connnection.запрос или аналогичный (мне нужно точное значение ping; не информация о сервере вверх или вниз)
Поэтому мой вопрос заключается в том, как я могу получить ping / latency в этих условиях, чтобы мой код функционировал.(любые предложения, связанные с перепиской кода или использованием библиотеки приветствуются)