 patcat88 join:2002-04-05 Jamaica, NY kudos:1 | slashdottinglook what the server returned
<?php
$title = "Glasnost: Test if your ISP is manipulating BitTorrent traffic";
# For the moment, put all measurement servers here, full path to the PHP script!
$server = array (
'http://loki03.mpi-sws.mpg.de/bb/bt.php',
'http://loki04.mpi-sws.mpg.de/bb/bt.php',
'http://loki05.mpi-sws.mpg.de/bb/bt.php',
'http://loki06.mpi-sws.mpg.de/bb/bt.php',
'http://loki07.mpi-sws.mpg.de/bb/bt.php',
'http://loki08.mpi-sws.mpg.de/bb/bt.php',
'http://loki09.mpi-sws.mpg.de/bb/bt.php',
'http://loki10.mpi-sws.mpg.de/bb/bt.php',
'http://r10241.ovh.net/glasnost/bt.php'
);
// function check_referer(){
// global $server;
// # Only allow connections from this server or the main site
// if(isset($_SERVER['HTTP_REFERER'])){
// list ($proto, $void, $referer_hostname, $void) = split("/", $_SERVER['HTTP_REFERER'], 4);
// $referer_ip = gethostbyname($referer_hostname);
// if(($referer_ip != $server) && !preg_match('/^139\.19\.1\./', $referer_ip)){
// header("Location: http://broadband.mpi-sws.mpg.de/transparency/");
// exit(0);
// }
// }
// else{
// header("Location: http://broadband.mpi-sws.mpg.de/transparency/");
// exit(0);
// }
// }
# Whether we should display an error message
# error_code 42 means expert mode
$error_code = 0;
# Server was busy
if(isset($_GET['busy'])){
$error_code = 2;
}
# Expert mode
elseif($_GET['expert'] == "on"){
$error_code = 42;
if(isset($_GET['expert']) && ($_GET['expert'] == "on")){
if($_GET['measure'] == "yes" && isset($_GET['ip']) && (! isset($_GET['up'])) && (! isset($_GET['down']))){
$error_code = 3;
}
}
}
###########################################################
# Display the start page and an error message if necessary
###########################################################
$index = mt_rand(0, (count($server))-1);
$ip = getenv('REMOTE_ADDR');
$name = gethostbyaddr($ip);
if(isset($_GET['up']) && $_GET['up'] == "yes"){
$up = "checked";
}
if($error_code == 0){
$up = "checked";
}
if(isset($_GET['down']) && $_GET['down'] == "yes"){
$down = "checked";
}
if($error_code == 0){
$down = "checked";
}
if(isset($_GET['tcp']) && $_GET['tcp'] == "yes"){
$tcp = "checked";
}
if(isset($_GET['port2']) && is_numeric($_GET['port2'])){
$port2 = $_GET['port2'];
}
$btport = 6881;
if(isset($_GET['port']) && is_numeric($_GET['port'])){
$btport = $_GET['port'];
}
$repeat = 2;
if(isset($_GET['repeat']) && is_numeric($_GET['repeat'])){
$repeat = $_GET['repeat'];
}
$duration = 20;
if(isset($_GET['duration']) && is_numeric($_GET['duration'])){
$duration = $_GET['duration'];
}
$error = "";
if($error_code == 2){
$error = "<p style=\"border: 1px solid red;padding:5px;color:red;font-weight:bold;max-width:860px;\">We are sorry.
Our measurement servers are currently busy. Please try again later.<br>
<span style=\"color:black;\">If you are interested in hosting a test server, please contact us at
<img src=\"http://broadband.mpi-sws.org/pics/email.png\" alt=\"broadband @at@ mpi-sws mpg de\" style=\"margin-left:5px;margin-bottom:-6px;\"> or <a href=\"http://broadband.mpi-sws.org/transparency/contribute.html\">click here</a>.</span>
</p>";
}
if($error_code == 3){
$error = "<p style=\"border: 1px solid red;padding:5px;color:red;font-weight:bold;\">You have to select at least one
direction (upstream or downstream) to start the measurement..</p>";
}
if (eregi("mac", $_SERVER['HTTP_USER_AGENT'])){
$warning = "<li style=\"position:relative; left:-20px;\">
<b style=\"color:#69acff\">Note to MacOS X users:</b> To work around a unique policy setting in Apple's Java we had to sign our Java Applet for MacOS X. To run this test, you have to <i>\"trust\"</i> the applet in the popup window that will appear once you start the test.";
}
echo <<<END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>$title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="http://broadband.mpi-sws.org/mpi.css" type="text/css">
<link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon">
<link rel="icon" href="/favicon.ico" type="image/vnd.microsoft.icon">
<style type="text/css">
a{ text-decoration: underline; }
</style>
</head>
<body>
<a href="http://www.mpi-sws.mpg.de"><img src="http://broadband.mpi-sws.org/pics/mpisws-logo.png" alt="MPI-SWS" style="border:0px;background-color:white;vertical-align:bottom;"></a>
<h1 style="font-family:serif;">$title</h1>
<span style="border-top:1px solid #69acff;border-bottom:1px solid #69acff;font-weight:bold;">
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-left:15px;margin-bottom:3px;">
<a href="http://broadband.mpi-sws.mpg.de/transparency/" style="text-decoration:none">Home</a>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-left:5px;margin-bottom:3px;">
<a href="http://broadband.mpi-sws.mpg.de/transparency/results/" style="text-decoration:none">Results</a>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-left:5px;margin-bottom:3px;">
<a href="http://broadband.mpi-sws.mpg.de/transparency/contribute.html" style="text-decoration:none">How to contribute</a>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-left:5px;margin-bottom:3px;">
</span><br>
<div style="border:1px double #69acff;padding:15px;padding-bottom:5px;margin-bottom:10px;margin-top:10px;">
<div style="border-bottom:1px solid #c52b48;font-family:serif;font-weight:bold;color:#c52b48;">NEW!</div>
<ul class="bullet">
<li style="position:relative; left:-20px;"><a href="http://broadband.mpi-sws.mpg.de/transparency/results/" style="font-weight:bold;text-decoration:none;">Results</a>:
We present preliminary results from the tests for BitTorrent traffic manipulation
<a href="http://broadband.mpi-sws.mpg.de/transparency/results/">here</a>.
<li style="position:relative; left:-20px;"><a href="http://broadband.mpi-sws.mpg.de/transparency/contribute.html" style="font-weight:bold;text-decoration:none;">Hosting a Glasnost server</a>:
We are looking for additional servers to scale to a higher number of users. If you are interested in contributing to our project,
you can find information on how to host a Glasnost server
<a href="http://broadband.mpi-sws.mpg.de/transparency/contribute.html">here</a>.
<li style="position:relative; left:-20px;"><a href="http://broadband.mpi-sws.mpg.de/transparency/contribute.html#code" style="font-weight:bold;text-decoration:none;">Source code</a>:
We released the <a href="http://broadband.mpi-sws.mpg.de/transparency/contribute.html#code">source code</a> for Glasnost.
We encourage you to check the code for bugs.
Please contact us, if you find any bugs or have questions, comments, or suggestions.
</ul>
</div>
<div style="border:1px solid #69acff;padding:15px;">
<p>Certain ISPs have been shown to rate limit or block BitTorrent traffic sent by their customers.
While there are multiple reports of this
<a href="http://www.eff.org/wp/packet-forgery-isps-report-comcast-affair" target="_blank">on the web</a>,
only a few ISPs have admitted that they manipulate BitTorrent traffic. And, to date, it is hard
for users without networking expertise to gain evidence about the behavior of their ISP.
</p><p>
This test suite creates a BitTorrent-like transfer between your machine and our server, and
determines whether or not your ISP is limiting such traffic. This is a first step towards making
traffic manipulation by ISPs more transparent to their customers.
</p>
<div style="border-bottom:1px solid #69acff;font-family:serif;font-weight:bold;">What can you test?</div>
<p>
Our test focuses on the popular BitTorrent protocol as many ISPs
<a href="http://www.azureuswiki.com/index.php/Bad_ISPs" target="_blank">are suspected</a> to manipulate
BitTorrent traffic. This type of traffic can be identified by the port it is sent on (e.g., TCP port
6881) or by BitTorrent content headers which occur in the packets.<br>
Therefore, we designed our online tool to detect whether your ISP is using one of the following techniques:
</p>
<ul class="bullet">
<li>Throttling all BitTorrent traffic.
<li>Throttling all traffic at well-known BitTorrent ports.
<li>Throttling BitTorrent traffic only at well-known BitTorrent ports.
</ul>
<p>Note that some ISPs do not throttle all BitTorrent traffic but only if this traffic exceeds a
certain threshold. Thus, passing our tests does not necessary mean that there is no throttling
occurring on your link.
</p>
<br>
<form action="$server[$index]">
<div style="border:1px solid #69acff;padding:15px;">
<ul class="bullet" style="margin-bottom:30px;">
<li style="position:relative; left:-20px;">Our test runs BitTorrent and TCP downloads as well as uploads on a well-known BitTorrent port and
a non-BitTorrent port.
<li style="position:relative; left:-20px;">There are two test configurations available. The simple one takes approximately 4 minutes and
each individual transfer is 10 seconds long. The full testset runs each transfer for 20 seconds
and collect more data points and allows us to infer the status of your link with higher confidence.
<li style="position:relative; left:-20px;"><span style="font-weight:bold">Note to all users:</span>
To allow accurate measurements you should stop any large downloads that might run in the background.
<li style="position:relative; left:-20px;">If you are interested in a more detailed description of our test suite and its detection
techniques, please <a href="http://broadband.mpi-sws.mpg.de/transparency/btdetails.html">read on here</a>.
$warning
</ul>
$error
END;
if($error_code == 42){
echo <<<END
<input type="hidden" name="ip" value="$ip">
<input type="hidden" name="measure" value="yes">
<input type="hidden" name="expert" value="on">
<p>
<input type="checkbox" name="up" value="yes" $up> Test the upstream direction.<br>
<input type="checkbox" name="down" value="yes" $down> Test the downstream direction.<br>
<input type="checkbox" name="tcp" value="yes" $tcp> Compare BitTorrent and TCP transfer rates<br>
Test on BitTorrent port #<input type="text" name="port" value="$btport" size="5"><br>
Test also on a non-BitTorrent port #<input type="text" name="port2" value="$port2" size="5"> (no port disables this test)<br>
Repeat each experiment <input type="text" name="repeat" value="${repeat}" size="2"> times<br>
Run each experiment for <input type="text" name="duration" value="${duration}" size="2"> seconds<br>
END;
}
else{
echo <<<END
<input type="hidden" name="ip" value="$ip">
<input type="hidden" name="measure" value="yes">
<input type="hidden" name="port" value="6881">
<!-- input type="hidden" name="repeat" value="2" -->
<input type="hidden" name="down" value="yes">
<input type="hidden" name="up" value="yes">
<input type="hidden" name="port2" value="4711">
<input type="hidden" name="tcp" value="yes">
<p>
<input type="radio" name="duration" value="20" checked> Full test (~ 7 minutes)<br>
<input type="radio" name="duration" value="10"> Simple test (~ 4 minutes)<br>
END;
}
echo <<<END
<br>
<input type="submit" value="» Start testing «" class="button"></p>
</div>
</form>
END;
if($error == ""){
echo <<<END
<br>
<div style="border-bottom:1px solid #69acff;font-family:serif;font-weight:bold;">Who are we?</div>
<p>We are researchers at the <a href="http://www.mpi-sws.org">Max Planck Institute for Software Systems</a>.
Our research focuses on characterizing residential broadband networks and understanding their
implications for the designers of future protocols and applications.
In case you have questions about this tool or our research, please visit our
<a href="http://broadband.mpi-sws.org/transparency/">network transparency project webpage</a> or contact us via e-mail:
<img src="http://broadband.mpi-sws.org/pics/email.png" alt="broadband @at@ mpi-sws mpg de" style="margin-left:5px;margin-bottom:-6px;">
</p>
<table class="indent" style="width:450px;">
<tr>
<th style="text-align:left;font-style:italic;color:#777777;">Faculty</th>
<th style="width:50px;"> </th>
<th style="text-align:left;font-style:italic;color:#777777;">Students</th>
</tr>
<tr>
<td style="vertical-align:top;">
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-bottom:3px;">
<a href="http://www.mpi-sws.mpg.de/~gummadi/">Krishna P. Gummadi</a><br>
</td>
<td style="width:50px;"> </td>
<td>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-bottom:3px;">
<a href="http://www.mpi-sws.mpg.de/~mdischin/">Marcel Dischinger</a><br>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-bottom:3px;">
<a href="http://www.cs.rice.edu/~ahae/">Andreas Haeberlen</a><br>
<img src="http://broadband.mpi-sws.org/pics/square.png" alt="*" style="margin-right:5px;margin-bottom:3px;">
<a href="http://www.mpi-sws.mpg.de/~amislove/">Alan Mislove</a><br>
</td>
</tr>
</table>
END;
}
else{
echo <<<END
<p>
In case you have questions about this tool or our research, please visit our
<a href="http://broadband.mpi-sws.org/transparency/">network transparency project webpage</a> or contact us via e-mail:
<img src="http://broadband.mpi-sws.org/pics/email.png" alt="broadband @at@ mpi-sws mpg de" style="margin-left:5px;margin-bottom:-6px;">
</p>
END;
}
echo <<<END
</div>
<!-- Begin Motigo Webstats code -->
<!-- Title: BitTorrent test -->
<!-- URL: http://broadband.mpi-sws.org/transparency/bttest.php -->
<a target="_blank" href="http://www.webstats.motigo.com/stats?AEQpQwMrmLgDoaOx7ITvWyxTR52g">
<img src="http://m1.webstats.motigo.com/n?id=AEQpQwMrmLgDoaOx7ITvWyxTR52g" border="0" width="18" height="18" alt="Motigo Webstats - Free web site statistics Personal homepage website counter">
</a>
<!-- End Motigo Webstats code -->
</body>
</html>
END;
|