Скорость коннекта силами PHP

CE

Новичок
Скорость коннекта силами PHP

Нигде не могу найти готовые функции или скрипты по измерению скорости коннекта с помощью PHP =(. Мне надо получить конкретную цифру на данный момент типа bps. Отправьте, плз, на ФАКи или мануалы (конкр. ссылку), или дайте совет как это сделать. Заранее благодарен =)
 

Yurik

/dev/null
`ping -s 1024 host
измерит скорость передачи 1кб пакета от host до компа на котором запустить скрипт
Чтобы измерить реальную скорость передачи надо или скачать (fopen) или закачать (CURL) файл определенного размера и посчитать время
 

CE

Новичок
Ситуация следующая: есть сервер с php-сценарием и есть клиент с C-приложением. Когда С-приложение коннектится к серверу, тот должен точно знать скорость коннекта клиента. Причем измерение надо делать довольно часто - раз в 5 - 10 секунд.

Даже если написать скрипт, который будет открывать файл или скачивать его для измерения скорости, то у клиента:
1) обязательно должен быть этот файл (ну пусть это будет само приложение)
2) он должен быть открыт для доступа (!)
а это делает приложение не мобильным =(

Неужели у PHP нет функции, которая работала бы как ping?
 

yugene

Отошел от дел
Originally posted by CE
Ситуация следующая: есть сервер с php-сценарием и есть клиент с C-приложением. Когда С-приложение коннектится к серверу, тот должен точно знать скорость коннекта клиента. Причем измерение надо делать довольно часто - раз в 5 - 10 секунд.

Даже если написать скрипт, который будет открывать файл или скачивать его для измерения скорости, то у клиента:
1) обязательно должен быть этот файл (ну пусть это будет само приложение)
2) он должен быть открыт для доступа (!)
а это делает приложение не мобильным =(

Неужели у PHP нет функции, которая работала бы как ping?
1. Как сервер может открыть файл у клиента? Может, конечно, быть вырожденный случай, когда клиент сам может выступать в роли сервера. Подошло бы для интранет-решения, причем, выглядело бы не очень красиво...

2. Еще в PHP нет функции, которая считает длину кабеля между сервером и клиентом :(
 

CE

Новичок
1. Как сервер может открыть файл у клиента? Может, конечно, быть вырожденный случай, когда клиент сам может выступать в роли сервера. Подошло бы для интранет-решения, причем, выглядело бы не очень красиво...

- согласен, не подумал. работаю на одной машине


Еще в PHP нет функции, которая считает длину кабеля между сервером и клиентом

- да там не только длина кабеля. там куча всего, типа dial up, перегруженность, помехи...
Только вот есть замечательный браузер MyIE (ныне "Макстрон", если не ошибаюсь), у которого при загрузке любой страницы отображается скорость коннекта в статус-баре

Если писать такой скриптик, от чего надо опираться? Если у кого есть идеи - подскажите!
 

yugene

Отошел от дел
Originally posted by CE
да там не только длина кабеля. там куча всего, типа dial up, перегруженность, помехи...
Шутка, надеюсь?

Originally posted by CE
Только вот есть замечательный браузер MyIE (ныне "Макстрон", если не ошибаюсь), у которого при загрузке любой страницы отображается скорость коннекта в статус-баре
Еще Opera показывает скорость соединения. Только это клиенты! Клиент отправляет серверу запрос (старт_тайм) и получает от него ответ (финиш_тайм) определенного размера (сайз), соответственно, зная эти три величины, можно определить скорость соединения. Сервер клиенту не посылает никакого запроса и не получает никакого ответа.

PING сработает только при указании IP-адреса клиента. Причем это должен быть не адрес сети, в которой он работает, или его провайдера, а адрес конкретно его компьютера. Опять же, тут возможно извращенное решение в условиях интранета.

Думаю, смотреть надо в сторону других протоколов...

-~{}~ 07.02.05 18:18:

Еще можно измерять скорость на клиенте, в C-приложении и передавать ее как параметр на сервер.
 

CE

Новичок
Спасибо, конечно! Но может я сегодня устал - что-то не понял подсказки.

По сути получается следующее:
1) Клиент шлет первый запрос на сервер -> php запускает секундомер
2) Клиент, скачав файл, переходит к php-сценарию -> php останавливает отсчет времени и к началу работы уже имеет переменную коннекта!

Остается реализовать.. =)
 

yugene

Отошел от дел
Originally posted by CE
Спасибо, конечно! Но может я сегодня устал - что-то не понял подсказки.

По сути получается следующее:
1) Клиент шлет первый запрос на сервер -> php запускает секундомер
2) Клиент, скачав файл, переходит к php-сценарию -> php останавливает отсчет времени и к началу работы уже имеет переменную коннекта!

Остается реализовать.. =)
Смотри дополнение к предыдущему моему посту...
 
Сверху