| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Проверка скорости интернета (загрузка-выгрузка) |
| Автор: wolter 26.1.2009, 16:13 |
| Хотелось бы написать небольшую программуленьку (допустим в консольном ворианте) которая проверяла ла бы скорость интернета скорость загрузки файла и выгрузки приверно так как это сделанно на http://2ip.ru собственно кроме того как сделать проверку пинга в модулях по моей теме ничего не нашел, подскажите куда рыть) |
| Автор: tolkien 27.1.2009, 03:01 |
| Это легко. Скорость находится по формуле $v = $count / $t; #скорость байт/c $count - кол. полученных байт $t - время за которое получены $count. |
| Автор: wolter 27.1.2009, 10:11 |
| ну а както в примере это можно увидеть. а то я чтото не очень понял эту формулу, точнее вообще не понял я имею введу именно как в перл это реализовать чтобы что то на что то поделить это надо сначало получить вопрос как... |
| Автор: gcc 27.1.2009, 10:23 |
| я видел скрипт который пишет сколько времени осталось до конца загрузки и скорость, перл + аякс... то есть тогда когда файл начинает закачиватся оставить таймер, конгда закончит, то определить время сколько пршло... Добавлено @ 10:26 www.perlmonks.org/?node_id=588964 Web Browser File Upload Progress Bar in Perl w/AJAX |
| Автор: wolter 27.1.2009, 11:14 |
| gcc, спасибо, но, это тоже немного не то, вот допустим есть модуль Net::Ping с помошью него можно сделать обычный пинг, это мне подходит потому как это работает в консоли и все на ура, но вот как допустим просто проверить скорость интернета, в сети полно ресурсов где это можно сделать вопрос в том как они это сделали и как это сделать в консоли на перле |
| Автор: wolter 27.1.2009, 13:05 |
| и тишина.... |
| Автор: shamber 27.1.2009, 15:39 |
| wolter, вы как всегда очень спешите для проверки скорости upload и download вам нужно: 1 найти место откуда вы будете файл скачивать 2 найти место куда вы будете файл закакчивать Если у вас есть свой хостинг то эти два вопроса решаются очень просто А дальше все очень просто для определения скрости скачивания, вы из скрипта начинаете скачивать файл. и в этот момент запускаете таймер. через некоторое время(или по оканчании) скачивания вы просто считает скорость по предложенной вам tolkien формуле. |
| Автор: wolter 27.1.2009, 15:46 |
| shamber, а Вы все как всегда расстовляете на свои места, кстати спасибо вам за это, да хостинг свой есть, вориант который предложил tolkien, я если честно не понял, мнебы хоть какойто пример, |
| Автор: shamber 27.1.2009, 22:48 | ||
wolter, простой пример для определения скорости download
только не запутайтесь с размерностью. А после того, как скачали файл, его точно также uploadите и получаете скорость upload. вот и все дела Добавлено @ 22:53 и 2ip.ru точно также и измеряет, сначала скачивает файл, а потом закачивает и так и подсчитывает. |
| Автор: wolter 28.1.2009, 10:31 |
| shamber, Как всегда должен Вам выразить свою презнательность и сказать Вам огромное спасибо, стар положен, теперь буду копать копать и еще раз копать )))) |
| Автор: wolter 28.1.2009, 12:07 |
| shamber, наверно я что то всетоки напутал после запуска у меня появляеться много групп цифр, берем серденее 9348183.31203213b/sec округляем 9348183b/sec делем это число на 1024 дабы получить Kb/sec в итоге получаем число грубо говоря 9129 (уже немного странно) идем еще дальше умножаем полученное число на 8 дабы узнать Kbps получаем грубо говоря 73032Kbps далее делем это на 1024 дабы получить Мbps получаем грубо говоря 71,3Мbps и это при реальной скорости интернета гдето 1.8Мbps вопрос где и что я напутал? |
| Автор: shamber 28.1.2009, 14:53 | ||
| Что-то тут не так Давайте откажемся от фишки с callback
Speed 28610.2751232511 bytes/sec by download 201739 bytes Вообщем для меня нормальная скорость |
| Автор: shamber 28.1.2009, 15:14 | ||
Все нашел свой косяк. ДЛя того чтобы работал первый варинат нужно кое-что исправить
|
| Автор: wolter 28.1.2009, 15:27 |
| shamber, Сейчас буду это опкапывать ) спасибо Вам ) кстати вопрос, так идет подсчет средней скорости, а как допустим вичислить максимальную или среднию, я простоне понял как работает формула ? |
| Автор: shamber 28.1.2009, 15:31 |
wolter, смотрите..... Что такое скорость скачивания? это количество скаченных байтов в секунду, правильно? Об этом размерность bytes/sec говорит? Вот так формула и работает Вы скачиваете фалик. и замеряете скорость, каждые n байт. А дальше просто находите минимальные и максимальные значения, а если нужно среднюю, то по формуле среднего и все... или может быть я Вас не понял. |
| Автор: wolter 28.1.2009, 16:22 |
| shamber, приведу пример, вот допусти скрипт возвращает данные допустим с задержкой в 1 сек 12 43 15 36 23 вот собственно вопрос допустим естиь переменная ее начальное значени равно ничему в нее по пере получение передаються данные сначала 12 потом 43 и т.д. перед тем как принятьв себя данные она проверяет допустим если первый раз значение было 12 а потом идет 43 то понятное дело что переменная запоминает значение 43 и сравнивает его с последующими данными если данные поподаються больше чем 43 она принамет значение большего числа собственно это так как я это вижу вопрос другой где их чего мне получать данные в Вшем примере?? по поводу формулы у вас есть такая строчка которая показывает как Вы сказали средние число как она это считает ?? |
| Автор: shamber 28.1.2009, 16:39 |
| у меня нет строчки которая считает среднее, но если вы не можете понять куда ее вставить, то дело плохо. Вы понимаете что делает скрипт который я вам привел? Если нет, то я повторюсь, вам нужно книжки по программированию почитать. |
| Автор: wolter 28.1.2009, 17:15 |
| shamber, Я то понимаю что он делает, поэтому у меня и появился вопрос увидив в Вашем коде эту строку (особенно ее комментарий) my $speed = $size/$elapsed;# считаем среднюю скорость как идет подсчет СРЕДЕНЕЙ скорости? |
| Автор: tolkien 28.1.2009, 19:21 |
| делением естественно |
| Автор: shamber 28.1.2009, 21:13 |
| wolter, средней это "образно".... Смотри, в callback мы получаем "мгновенную" скорость(т.е. скорость при скачивании маленьких порций данных) а в main коде мы считаем какая скорость была при скачивании файла целиком, отсюда и "средняя" скорость. Хотя чтобы посчитать среднюю необходимо сделать несколько замеров а потом подсчитать. Так будет честнее |
| Автор: wolter 29.1.2009, 10:17 |
| ну я примернотак и думал ))) что это оброзно ) |
| Автор: wolter 29.1.2009, 15:20 |
| теперь буду разбираться как сделать закачку файла.... |
| Автор: shamber 29.1.2009, 21:49 |
| Почитайте как народ предлагает реализовать http://www.perlmonks.org/?node_id=436810 |
| Автор: wolter 2.2.2009, 10:38 |
| shamber, Спасибо, но нефига не понятно ))) |
| Автор: shamber 3.2.2009, 01:44 |
| wolter, надо себя заставить |