downloadsnelheid-meten-mbv-php
Gesponsorde koppelingen
PHP script bestanden
Speedtest.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
// Hoeveel data genereren? (megabytes)
$fGenerateMegaBytes = 0.5;
// --- Hieronder de functionele code --- \\
$mbFactor = 1024*1024;
$iTotalBytes = 0;
$strEcho = '
<html>
<head><title>Speedtest</title></head>
<script type="text/javascript">
// Sla de data op zodra dit stukje door de browser is geladen.
Start = new Date();
window.onload = function(e){
// Hier wordt door middel van sprintf de hoeveelheid bytes van deze pagina geplaatst.
var fAmountOfData = %d;
// Deze datum wordt geladen zodra het volledige window geladen is
var End = new Date();
// Bereken het verschil, getTime levert een timestamp in miliseconden.
var difference = End.getTime() - Start.getTime();
// Geef een alertbox met informatie
alert(\'Data: \' + Math.round(fAmountOfData/1024) + \' KB\\n Time: \' + difference/1000 + \' seconds\\n Speed: \' + Math.round(fAmountOfData/(1024*difference/1000)) + \' KB/s\');
}
</script>
<body>';
// Blijf data genereren totdat de limiet bereikt is.
while($iTotalBytes < $fGenerateMegaBytes*$mbFactor)
{
$strEcho .= 'Regel '.$i.', alweer bytes verstuurd! PHP genereert data voor een speedtest!!! Php genereert data als geen ander :)! Totaal ('.round($iTotalBytes/$mbFactor, 3)." MB)\n<br />";
$iTotalBytes = strlen($strEcho);
}
// Sluit de pagina netjes af
$strEcho .= '</body>
</html>';
// Vervang de %d (getal) door de lengte in bytes
echo sprintf($strEcho, strlen($strEcho) );
?>
// Hoeveel data genereren? (megabytes)
$fGenerateMegaBytes = 0.5;
// --- Hieronder de functionele code --- \\
$mbFactor = 1024*1024;
$iTotalBytes = 0;
$strEcho = '
<html>
<head><title>Speedtest</title></head>
<script type="text/javascript">
// Sla de data op zodra dit stukje door de browser is geladen.
Start = new Date();
window.onload = function(e){
// Hier wordt door middel van sprintf de hoeveelheid bytes van deze pagina geplaatst.
var fAmountOfData = %d;
// Deze datum wordt geladen zodra het volledige window geladen is
var End = new Date();
// Bereken het verschil, getTime levert een timestamp in miliseconden.
var difference = End.getTime() - Start.getTime();
// Geef een alertbox met informatie
alert(\'Data: \' + Math.round(fAmountOfData/1024) + \' KB\\n Time: \' + difference/1000 + \' seconds\\n Speed: \' + Math.round(fAmountOfData/(1024*difference/1000)) + \' KB/s\');
}
</script>
<body>';
// Blijf data genereren totdat de limiet bereikt is.
while($iTotalBytes < $fGenerateMegaBytes*$mbFactor)
{
$strEcho .= 'Regel '.$i.', alweer bytes verstuurd! PHP genereert data voor een speedtest!!! Php genereert data als geen ander :)! Totaal ('.round($iTotalBytes/$mbFactor, 3)." MB)\n<br />";
$iTotalBytes = strlen($strEcho);
}
// Sluit de pagina netjes af
$strEcho .= '</body>
</html>';
// Vervang de %d (getal) door de lengte in bytes
echo sprintf($strEcho, strlen($strEcho) );
?>
datagenerator.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
// wat is je download snelheid ongeveer, of met welke snelheid wil je downloaden? (megabytes/seconde)
$iDownspeed = 0.1;
// Hoeveel megabytes downloaden per keer?
$iPulseMegaBytes = 1;
// Hoeveel data genereren per keer, dus voor een refresh? (megabytes)
$iGenerateMegaBytes = 5;
// Hoeveel data genereren in totaal? (megabytes)
$iTotalMegaBytes = 75;
// De regel die geoutput moet worden, wordt alleen gebruikt voor schatting
// Geen replace gebruikt ivm performance
// Regel eventueel ook aanpassen in code
$strApproxOutputdata = 'Regel xxx, alweer bytes verstuurd! Weg met de downloadlimieten in Belgie! Php genereert data als geen ander :)! Totaal (x.xxx'." MB)\n<br />";
// --- Hieronder de functionele code --- \\
if(isset($_GET['sendbytes'])){
$mbytes = intval($_GET['sendbytes']);
$sendmbytes = intval($_GET['sendbytes']);
}else{
$mbytes = 0;
$sendmbytes = 0;
}
$mbFactor = 1024*1024;
$fRowlength = strlen($strApproxOutputdata)/ $mbFactor;
$iGenerateTimes = ceil($iGenerateMegaBytes / $fRowlength);
$iApproxTimeout = ceil($iPulseMegaBytes / $iDownspeed);
for($i = 1; $i <= $iGenerateTimes; $i++)
{
$mbytes += $fRowlength;
echo 'Regel '.$i.', alweer bytes verstuurd! Weg met de downloadlimieten in Belgie! Php genereert data als geen ander :)! Totaal ('.round($mbytes, 3)." MB)\n<br />";
if($iDownspeed == 0 || ($mbytes - $sendmbytes) > $iPulseMegaBytes){
// Vernieuw de timeout
set_time_limit(30);
if($iDownspeed > 0){
// Wacht met genereren tijdens verzenden verzenden
sleep($iApproxTimeout);
$sendmbytes = $mbytes;
}
flush();
}
}
if($iTotalMegaBytes > $mbytes){
// Echo een metarefresh
echo '<meta http-equiv="refresh" content="0;url='.$_SERVER['PHP_SELF'].'?&sendbytes='.$mbytes.'&code='.md5(rand()).'">';
}
?>
// wat is je download snelheid ongeveer, of met welke snelheid wil je downloaden? (megabytes/seconde)
$iDownspeed = 0.1;
// Hoeveel megabytes downloaden per keer?
$iPulseMegaBytes = 1;
// Hoeveel data genereren per keer, dus voor een refresh? (megabytes)
$iGenerateMegaBytes = 5;
// Hoeveel data genereren in totaal? (megabytes)
$iTotalMegaBytes = 75;
// De regel die geoutput moet worden, wordt alleen gebruikt voor schatting
// Geen replace gebruikt ivm performance
// Regel eventueel ook aanpassen in code
$strApproxOutputdata = 'Regel xxx, alweer bytes verstuurd! Weg met de downloadlimieten in Belgie! Php genereert data als geen ander :)! Totaal (x.xxx'." MB)\n<br />";
// --- Hieronder de functionele code --- \\
if(isset($_GET['sendbytes'])){
$mbytes = intval($_GET['sendbytes']);
$sendmbytes = intval($_GET['sendbytes']);
}else{
$mbytes = 0;
$sendmbytes = 0;
}
$mbFactor = 1024*1024;
$fRowlength = strlen($strApproxOutputdata)/ $mbFactor;
$iGenerateTimes = ceil($iGenerateMegaBytes / $fRowlength);
$iApproxTimeout = ceil($iPulseMegaBytes / $iDownspeed);
for($i = 1; $i <= $iGenerateTimes; $i++)
{
$mbytes += $fRowlength;
echo 'Regel '.$i.', alweer bytes verstuurd! Weg met de downloadlimieten in Belgie! Php genereert data als geen ander :)! Totaal ('.round($mbytes, 3)." MB)\n<br />";
if($iDownspeed == 0 || ($mbytes - $sendmbytes) > $iPulseMegaBytes){
// Vernieuw de timeout
set_time_limit(30);
if($iDownspeed > 0){
// Wacht met genereren tijdens verzenden verzenden
sleep($iApproxTimeout);
$sendmbytes = $mbytes;
}
flush();
}
}
if($iTotalMegaBytes > $mbytes){
// Echo een metarefresh
echo '<meta http-equiv="refresh" content="0;url='.$_SERVER['PHP_SELF'].'?&sendbytes='.$mbytes.'&code='.md5(rand()).'">';
}
?>