Studweb karakter varsler NTNU
Er du lei av å logge inn på studentweb hver dag og sjekke etter nye karakterer? La heller et program gjøre jobben for deg. Dette php scriptet logger inn og sjekker etter nye karakterer hvert 30. minutt, og varsler deg på sms når du har fått en ny karakter.
Den sms’en du får er generert av inpoc.no, og kommer til å si at din kode for innlogging er “xxxx”, men glem det, poenget er at du blir varslet per sms.
For å kunne kjøre koden må php være installert. Last f.eks. ned wamp. Bla deg fram til mappen der filen med kode ligger, og skriv “php studweb.php”.

Ofte stillte spørsmål
1. Jeg får opp php gjenkjennes ikke som en intern eller ekstern kommando,
kjørbart program eller satsvis fil.” når jeg prøver å kjøre koden.”
SVAR: Php må være installert, i tillegg må du sette en PATH. D.v.s. at cmd kan nå php.exe fra hvorsom helst i cmd. Høyreklikk min datamaskin -> Avanserte systeminnstillinger -> Miljøvariabler -> Ny -> Variabelnavn skal være “Path” og variabelverdi skal være plassering av php.exe. Til meg er den “C:\wamp\bin\php\php5.3.0″.
2. Når jeg kjører koden får jeg “PHP Fatal error: Call to undefined function curl_init(). SVAR: Åpne php.ini som ligger i samme mappe som php.exe. Søk deg fram til linjen som inneholder “extension=php_curl.dll”. Fjern det semikolonet som er forran.
Last ned koden fra .txt eller kopier herfra:
<?php
## Logger innpå studweb og sjekker for nye karakterer.
## Det brukes her personnummer og pin.
// Config
$nr = "xx"; // personnummer
$pin = "xxxx";
$cell = "xx"; // tlf nummer
$fag = array("exph0001", "ma1103"); // fagkoder. Kun småebokstaver!
$cookie = "c.txt";
function login()
{
global $cookie;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no/cgi-bin/WebObjects/studentweb2?inst=NTNU");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
$data = curl_exec($ch);
curl_close($ch);
// Finner token som trengs til innlogging
preg_match_all("/(\d){8}/", $data, $match);
$token = $match[0][0];
$fp = fopen("a.html", "w");
fwrite($fp, $data);
fclose($fp);
login2($token);
}
function login2($token)
{
global $cookie;
global $nr;
global $pin;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no/cgi-bin/WebObjects/studentweb2.woa/wa/login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "fodselsnr={$nr}&pinkode={$pin}&transnr={$token}&login=Logg%20inn&javascript=0&inst=NTNU");
$data = curl_exec($ch);
curl_close($ch);
// Finner url som trengs til å klikke på _Innsyn_
preg_match_all("/ater m\.m\.\" href=\"(.+?)\"/", $data, $match);
$url = $match[1][0];
$fp = fopen("b.html", "w");
fwrite($fp, $data);
fclose($fp);
login3($url);
}
function login3($url)
{
global $cookie;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no" . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
$data = curl_exec($ch);
curl_close($ch);
// Finner token som trengs til å klikke på _Resultater_
preg_match_all("/Se dine resultater\" href=\"(.+?)\"/", $data, $match);
$url = $match[1][0];
$fp = fopen("c.html", "w");
fwrite($fp, $data);
fclose($fp);
login4($url);
}
function login4($url)
{
global $cookie;
global $fag;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://studentweb.ntnu.no" . $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
$data = strtolower(curl_exec($ch));
curl_close($ch);
// looper igjennom og ser etter fagkodene
$i = 0;
while($fag[$i])
{
if( strpos($data, $fag[$i]) )
{
echo "\nVarsler.. $fag[$i] \n";
unset($fag[$i]); // fjerner faget fra array
varsle();
}
else
{
echo "#";
}
$i++;
}
$fp = fopen("d.html", "w");
fwrite($fp, $data);
fclose($fp);
}
function varsle()
{
global $cell;
// sender en sms til mobil
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://folk.inpoc.no/registrer/');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"cellnumber={$cell}&x=36&y=5&_aspiro_service=Login&_aspiro_service_method=registerSystemUser&_aspiro_service_onsuccess=step2.ftl&_aspiro_service_onsuccess_forward_parameter=cellnumber");
$data = curl_exec($ch);
curl_close($ch);
}
while(1)
{
login();
sleep(1800); // 30 mins
}
?>



































ikke dårlig. men har fått alle karakterene mine. Måtte uansett ha forandret et par ting pga at jeg går på UiO
[...] Til neste innlegg skal jeg lage en video der jeg viser hvordan jeg brutforca meg fram til passordet. Har du problemer med å legge inn php, eller å gå koden til å kjøre? Sjekk ut ofte stilte spørsmål i denne teksten: Studweb karaktervarsler [...]
Har fått alle karakterene, men bra tips. Får bruke det til sommeren igjen.