Что нового

[Сеть, интернет] Скорость скачивания файла

Vlasssov

Осваивающий
Сообщения
428
Репутация
25
Можно ли как-то посмотреть, с какой скоростью скачивается файл?
Собственно информация нужна для того, что рассчитать, сколько файлов одновременно можно скачивать, для заданной загрузки канала. Вообще данная задача как-нибудь решается?
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Если ты про функцию InetGet, то вот пример кода качающего видео с youtube... показывается объем скаченого, полный объем, и скорость... примерное время окончания загрузки пока не прикручивал... :smile:
Код:
Dim $links[1][3]=[["Hold it against me 266 Rein Marines Official Version","","http://v10.lscache4.c.youtube.com/videoplayback?sparams=id,expire,ip,ipbits,itag,ratebypass&fexp=906320,912101&itag=37&ipbits=8&signature=315E1C184DA18FC62AC673F6DBD9CCD81386C70B.99F74267E8C2B2AC29ABC772ED071E4CCF998B53&sver=3&ratebypass=yes&expire=1303729200&key=yt1&ip=85.0.0.0&id=ac2ac6e93cc6fa7c&title=Hold it against me 266 Rein Marines Official Version"]]
		$i=0
		$old=0
		$dStart=TimerInit()
		Local $hDownload = InetGet($links[$i][2], @ScriptDir & $links[$i][0] & ".mp4", 1, 1)	
		Do
			tooltip("Видео " & $i &"/" & UBound($links)-1 &"  " & _ 
			Round(InetGetInfo($hDownload, 0)/1024/1024, 2)& " mb  " & round(InetGetInfo($hDownload, 1)/1024/1024, 2) & " mb"& "  " & _
			Round((InetGetInfo($hDownload, 0)/1024-$old)/(TimerDiff($dStart)/1000), 2) & ' kb/s' ,0,0)
			If TimerDiff($dStart)>1000 Then
				$old=InetGetInfo($hDownload, 0)/1024
				$dStart=TimerInit()
			EndIf
			sleep(250)
		Until InetGetInfo($hDownload, 2)

P.S. AutoIt может качать параллельно только 1 файл. (если только не запущено N-разных скриптов)


А тут прикрутил оставшееся время относительно средней скорости скачивания.
Код:
Dim $links[1][3]=[["Hold it against me 266 Rein Marines Official Version","","http://v10.lscache4.c.youtube.com/videoplayback?sparams=id,expire,ip,ipbits,itag,ratebypass&fexp=906320,912101&itag=37&ipbits=8&signature=315E1C184DA18FC62AC673F6DBD9CCD81386C70B.99F74267E8C2B2AC29ABC772ED071E4CCF998B53&sver=3&ratebypass=yes&expire=1303729200&key=yt1&ip=85.0.0.0&id=ac2ac6e93cc6fa7c&title=Hold it against me 266 Rein Marines Official Version"]]
		$i=0
		$old=0
		$dStart=TimerInit()
		$dStart1=TimerInit()
		Local $hDownload = InetGet($links[$i][2], @ScriptDir & $links[$i][0] & ".mp4", 1, 1)	
		Do
			tooltip("Видео " & $i &"/" & UBound($links)-1 &"  " & _ 
			Round(InetGetInfo($hDownload, 0)/1024/1024, 2)& " mb  " & round(InetGetInfo($hDownload, 1)/1024/1024, 2) & " mb"& "  " & _
			Round((InetGetInfo($hDownload, 0)/1024-$old)/(TimerDiff($dStart)/1000), 2) & ' kb/s  Осталось времени: ' & _
			Round(((InetGetInfo($hDownload, 1)-InetGetInfo($hDownload, 0))/1024/1024)/(InetGetInfo($hDownload, 0)/1024/1024/(TimerDiff($dStart1)/1000)), 1) & " сек",0,0)
			If TimerDiff($dStart)>1000 Then
				$old=InetGetInfo($hDownload, 0)/1024
				$dStart=TimerInit()
			EndIf
			sleep(250)
		Until InetGetInfo($hDownload, 2)
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Английский у меня на 3 и большие тексты загонял в переводчик...
Пользовался: http://translate.yandex.ru/. :Censored:
Строчку: Multiple downloads are supported if they are started in background mode.
Он переводит, как: Несколько загрузок не поддерживаются, если они запускаются в фоновом режиме.

Спасибо madmasles приятно удивлен... :thumbs_up:
 
Автор
Vlasssov

Vlasssov

Осваивающий
Сообщения
428
Репутация
25
Так написано, что прореживаются именно в фоновом режиме!
Из помощи
0 - Bytes read so far (this is updated while the download progresses).
Видимо показывает уже количесво скачанных байтов? Ну тогда меряем через секунду каждую закачку, потом суммируем и получаем загруженность канала...
Пошел писать мультизагрузчик...
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
:D
Видимо мой ответ до этого просто проигнорировали... там и сколько скачалось и сколько качать и скорость и время оставшееся.... в циферках... :ninja2:
 
Автор
Vlasssov

Vlasssov

Осваивающий
Сообщения
428
Репутация
25
У вас скорость весело подсчитывается...
 
Верх