Visar inlägg med etikett bahnhof. Visa alla inlägg
Visar inlägg med etikett bahnhof. Visa alla inlägg

11 oktober, 2008

Övrigt: Jag har 30/10Mbit bredband

Nu tänker jag skryta lite. Efter att jag flyttat ned till Halmstad så har jag fixat en ny Internetleverantör "Bahnhof" och är nu inkopplad i Halmstad Hitnet stadsnät. Hastigheten? 30Mbit ner och 10Mbit upp. Äntligen slipper man vänta på stora paket som laddas ner när man exempelvis hyr film via bittorrent.

Det är otroliga hastigheter om man jämför med mitt första "bredband" med hastigheten 0.25Mbit upp och ner. Egentligen heter det bara bredband om man har en hastighet lika med 2Mbit eller mer. Men i alla fall... jag är jättenöjd och det är till och med billigare än mitt 8Mbit jag hade tidigare med bredbandsbolaget. De e najs!

Nu lite rolig matematik som kanske är helt ointressant för Er
Om man har 30Mbit ner och vill veta hur stor teoretisk nerladdningshastighet man kan få ska man först omvandla från Mbit till kbps. Då får man kB/s.
1 Byte = 8 bitar
30Mbit = 30000kbps
kB/s = kbps / 8bit
= 3750 kB/s

3750 / 1024 = 3,5 MB/s (cirka)
Vilket betyder att ska man hyra en film på nätet som är i DVD kvalitet, cirka 4,7GB, så tar det:
4700MB / 3,5MB/s / 60s  = 22 min
Detta är då det maximala teoretiska cirka-värdet för hur lång tid det tar med 30Mbit ner.

Om man har en egen server hemma (t.ex HTTP eller FTP) med stora egen-inspelade filmer på cirka 700MB som man vill ladda ner från servern, och om man har 10Mbit upp, så kan servern ladda upp data i teoretisk maximal hastighet: 
10000kbps / 8bit / 1024 = 1,22MB/s
Att ladda upp en hel sådan film skulle då ta minst:
700MB / 1,22MB/s / 60s = 9,5min

Blev det lite för rörigt för Er eller förstod ni allt? I alla fall, jag ville bara skryta lite med mitt bredband och visa er hur man enkelt kan räkna ut sina bredbandshastiheter.

Att notera!
Det finns även 100/30, 30/30 uppkoppling hos Bahnhof som är bättre än min uppkoppling så jag är inte ensam där ute.

Referenser
Bredbandskollen.se - Testa din bredbandshastighet

08 oktober, 2008

Programmering: PHP Automatiskt Bahnhof inloggning Halmstad Hitnet

Hej! Jag använder Bahnhof's stadsnät i Halmstad för mitt Internet med mera. Nu är det så att man måste logga in manuellt varje gång i Halmstads hitnet-portal. Men om man däremot använder en router mellan sin dator och sitt nätverksuttag så borde det inte vara några problem.

Nu är det så att jag vill logga in automatiskt på stadsnätet med mitt användarnamn och lösenord. Hur löste jag det? Jo, jag programmerade ett väldigt litet skript i PHP som sedan anropas varje gång jag startar min dator. För er som vill veta använder jag PHP-Gtk2 i nuläget för att köra lokala PHP-skript.

Hur fungerar det?
Det är bara att köra skriptet samt tillåta trafiken genom brandväggen.

bahnhof-autologin.php
<?php

// Här anger ni inloggningsuppgifterna
$username = 'ANVÄNDARNAMN_HÄR';
$password = 'LÖSENORD_HÄR';
$realm = 'bahnhof';

// Server, port, samt data för att logga in via POST
$server = 'login.hitnet.nu';
$port = '80';
$uri = '/axs-login.do';
$content = 'method=login&username='. $username .'&realm='. $realm .'&password='. $password .'&next=Logga+in%21';

$post_results = doPost($uri, $content, $server);

//
// Credit går till "albertohf"
// på webbsidan http://www.php.net/fsockopen
//
function doPost($uri,$postdata,$host){
// Skapa en anslutning till servern
$da = fsockopen($host, 80, $errno, $errstr);
if (!$da) {
// Felkontroll
echo "$errstr ($errno)
\n";
echo $da;
}
else {
// Skapa paket-huvudet som ska skickas till servern som POST
$salida ="POST $uri HTTP/1.1\r\n";
$salida.="Host: $host\r\n";
$salida.="User-Agent: PHP Script Waschmans Autologin\r\n";
$salida.="Content-Type: application/x-www-form-urlencoded\r\n";
$salida.="Content-Length: ".strlen($postdata)."\r\n";
$salida.="Connection: close\r\n\r\n";
$salida.=$postdata;

fwrite($da, $salida);

while (!feof($da))
$response.=fgets($da, 128);

$response=split("\r\n\r\n",$response);

// Endast till för felsökning.
// Sparar resultatet från inloggningen i results.html
file_put_contents('results.html', $response);

$header=$response[0];
$responsecontent=$response[1];
if(!(strpos($header,"Transfer-Encoding: chunked")===false))
{
$aux=split("\r\n",$responsecontent);
for($i=0; $i<count($aux); $i++)
if($i==0 || ($i%2==0))
$aux[$i]="";
$responsecontent=implode("",$aux);
}//if
return chop($responsecontent);
}//else
}//function-doPost
Koden kanske även fungerar för andra Internetleverantörer i stadsnätet men det har jag lite svårt att testa eftersom jag bara har en tjänst beställd.

Jag vet inte riktigt hur många av er som kan ha någon nytta av detta men det har i alla fall jag. Tänkte att jag skulle publicera koden till allmänheten.

Tips!
Om ni använder webbläsaren Firefox med tillägget "Live HTTP Headers" så kan ni se alla paket-huvuden som skickas till servern när ni loggar in, loggar ut, eller helt enkelt surfar vanligt. Då kan ni ta reda på formatet som används för att skicka variablerna till inloggningsservern och sedan fortsätta där genom att programmera ett eget skript.

Om någon av er kära läsare får användning av detta eller vill använda koden för att sedan anpassa den för era behov så får ni gärna lämna en kommentar och berätta.

Välkomna till bloggen

Välkomna ska ni vara kära besökare. Jag skriver om IT för att det är kul och för att jag vill dela med mig av information och kunskap. Jag försöker hålla bloggen så kategoriserad som möjligt för att ni enklare ska hitta intressanta länkar och artiklar.