Страница 3 из 3
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 2:31 am
Alexiy2
Уважаемые!!! Покажите весь скрипт под Unix, а то у меня не получается забрать сразу все данные разом! Мозгов не хватает, не могу допедрить, как это вы делаете, а Коннект у вас с нулевыми значениями!
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 7:58 am
directman66
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 9:53 am
Alexiy2
Сама утилита стоит и скриптом вызывается! В ответ с ключом --simple выдает краткий отчёт с тремя строками:
Ping..
Download..
Upload..
Если забирать данные $temp = exec('speedtest-cli --simple | grep "Download" | awk \'{print $2}\'');, то записывается только параметр Download. Не запускать же утилиту три раза для получения остальных параметров. Вот я и спрашиваю, как оформить скрипт, чтобы все данные падали в нужные мне свойства.
$temp = exec('speedtest-cli --simple >/tmp/speedtest.txt'); и вот так попробовал, но разобрать текстовый файл не получается (мозгов не хватает). Помогите разобраться, чтоб, в будущем, вопросов не появлялось больше!
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 10:05 am
savenko_egor
Вот Вам полный скрипт:
https://pastebin.com/Tq1g5GD5
Запускаю его раз в час.
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 10:29 am
Alexiy2
На сколько я понимаю, то данный скрипт два раза запускает утилиту speedtest, один раз для download, второй для upload??? Или я ошибаюсь???
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 10:38 am
savenko_egor
Всё верно. Но он 2 раза прогоняет как Download, так и Upload. Можно поправить так, чтобы он один раз только прогонял, но мне пока лень, а оно и так работает)
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 10:50 am
Alexiy2
Вот как раз то я и бьюсь, чтоб с первого раза забирала система данные. А то получается, что у меня все три раза прогоняет... Может кто нибудь знает как сотворить чудо???
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 11:29 am
savenko_egor
Таки заставили меня написать
На скорую руку так:
Код: Выделить всё
exec('speedtest-cli --share --simple', $speed_string);
preg_match('/Download: (.*) Mbit\/s/', $speed_string[1], $downloadspeed);
preg_match('/Upload: (.*) Mbit\/s/', $speed_string[2], $uploadspeed);
preg_match('/Share results: (.*)/', $speed_string[3], $imagespeed);
Корректнее конечно загнать в цикл обработку полученного массива, но сделал на скорую руку код, который работает и даёт нужный результат.
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 3:17 pm
Alexiy2
savenko_egor писал(а): Пн июн 04, 2018 11:29 am
Таки заставили меня написать
На скорую руку так:
Код: Выделить всё
exec('speedtest-cli --share --simple', $speed_string);
preg_match('/Download: (.*) Mbit\/s/', $speed_string[1], $downloadspeed);
preg_match('/Upload: (.*) Mbit\/s/', $speed_string[2], $uploadspeed);
preg_match('/Share results: (.*)/', $speed_string[3], $imagespeed);
Корректнее конечно загнать в цикл обработку полученного массива, но сделал на скорую руку код, который работает и даёт нужный результат.
Премного Уважаемый Егор!!! Бьюсь с этим кодом и ни чего не получается!!! Может вы посмотрите в чем дело???
Код: Выделить всё
exec('speedtest-cli --share --simple', $speed_string);
preg_match('/Download: (.*) Mbit\/s/', $speed_string[1], $downloadspeed);
preg_match('/Upload: (.*) Mbit\/s/', $speed_string[2], $uploadspeed);
//preg_match('/Share results: (.*)/', $speed_string[3], $imagespeed);
setGlobal('ThisComputer.SpeedDownload',$downloadspeed);
setGlobal('ThisComputer.SpeedUpload',$uploadspeed);
В результат вместо данных записывается
ARRAY
Заранее благодарен за вашу помощь!!!
Re: Как получить скорость интернета?
Добавлено: Пн июн 04, 2018 3:35 pm
savenko_egor
Код: Выделить всё
exec('speedtest-cli --share --simple', $speed_string);
preg_match('/Download: (.*) Mbit\/s/', $speed_string[1], $downloadspeed);
preg_match('/Upload: (.*) Mbit\/s/', $speed_string[2], $uploadspeed);
//preg_match('/Share results: (.*)/', $speed_string[3], $imagespeed);
setGlobal('ThisComputer.SpeedDownload',$downloadspeed[1]);
setGlobal('ThisComputer.SpeedUpload',$uploadspeed[1]);
Говорю же на скорую руку делал. И нужно было парсить массив который хранится в переменной.