Как получить скорость интернета?

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm

Re: Как получить скорость интернета?

Сообщение Alexiy2 »

Уважаемые!!! Покажите весь скрипт под Unix, а то у меня не получается забрать сразу все данные разом! Мозгов не хватает, не могу допедрить, как это вы делаете, а Коннект у вас с нулевыми значениями!
directman66
Сообщения: 2799
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

Re: Как получить скорость интернета?

Сообщение directman66 »

Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm

Re: Как получить скорость интернета?

Сообщение Alexiy2 »

Сама утилита стоит и скриптом вызывается! В ответ с ключом --simple выдает краткий отчёт с тремя строками:
Ping..
Download..
Upload..

Если забирать данные $temp = exec('speedtest-cli --simple | grep "Download" | awk \'{print $2}\'');, то записывается только параметр Download. Не запускать же утилиту три раза для получения остальных параметров. Вот я и спрашиваю, как оформить скрипт, чтобы все данные падали в нужные мне свойства.

$temp = exec('speedtest-cli --simple >/tmp/speedtest.txt'); и вот так попробовал, но разобрать текстовый файл не получается (мозгов не хватает). Помогите разобраться, чтоб, в будущем, вопросов не появлялось больше!
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Как получить скорость интернета?

Сообщение savenko_egor »

Вот Вам полный скрипт: https://pastebin.com/Tq1g5GD5
Запускаю его раз в час.
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm

Re: Как получить скорость интернета?

Сообщение Alexiy2 »

На сколько я понимаю, то данный скрипт два раза запускает утилиту speedtest, один раз для download, второй для upload??? Или я ошибаюсь???
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Как получить скорость интернета?

Сообщение savenko_egor »

Всё верно. Но он 2 раза прогоняет как Download, так и Upload. Можно поправить так, чтобы он один раз только прогонял, но мне пока лень, а оно и так работает)
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm

Re: Как получить скорость интернета?

Сообщение Alexiy2 »

Вот как раз то я и бьюсь, чтоб с первого раза забирала система данные. А то получается, что у меня все три раза прогоняет... Может кто нибудь знает как сотворить чудо???
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Как получить скорость интернета?

Сообщение savenko_egor »

Таки заставили меня написать :D
На скорую руку так:

Код: Выделить всё

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);
Корректнее конечно загнать в цикл обработку полученного массива, но сделал на скорую руку код, который работает и даёт нужный результат.
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm

Re: Как получить скорость интернета?

Сообщение Alexiy2 »

savenko_egor писал(а): Пн июн 04, 2018 11:29 am Таки заставили меня написать :D
На скорую руку так:

Код: Выделить всё

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
Заранее благодарен за вашу помощь!!!
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Контактная информация:

Re: Как получить скорость интернета?

Сообщение 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]);  
Говорю же на скорую руку делал. И нужно было парсить массив который хранится в переменной.
Ответить