milsani110
Newbie
- Registriert
- 22. Januar 2013
- Beiträge
- 14
- Reaktionspunkte
- 2
- Punkte
- 23
ziel meines kleinen persönlichen projektes sollte sein, der monitor funktion vom oscam leben einzuhauchen. ich wollte wissen ob mein cs server läuft und das am besten per webseite. hab gesucht obs da schon was fertiges gibt aber konnte nichts finden was auf der monitor funktion aufsetzt. geholfen hat mir dabei definitiv das posting von dukat aus streamboard keine Links in fremde Boards, siehe Boardregeln!
dann hier noch mal die liste der befehle: exit,log,status,shutdown,reload,details,version,debug,getuser,setuser,setserver,commands,keepalive,reread,restart
naja und daraus sind dann die paar zeilen code entstanden. vielleicht hilft es ja dem ein oder anderen.
in der oscam.conf müssen min. folgende 3 Zeilen rein
in der oscam.user müssen folgende Zeilen eingetragen werden
nun zum eigentlichen php script, ich hoffe es ist soweit selbsterklärend, ansonsten kann ich aber gerne nach bessern
hab eben noch mal drüber gelesen, ich kann ja ein paar worte drüber verlieren.
ich connecte per udp zum angegeben host + port, 2 sekunden sollte für den vorgang reichen. dann setze ich den timeout für die nachfolgende befehle auch auf 2 sek. das schick ich ein login monitor geheim und als antwort muss dann sowas kommen wie [AS2000]1|monitor logged in. naja und dann frag ich den status ab, mit dem befehl status. dann gibts zeilenweise output und ich filter mir den passenden raus. welche infos da alle zurück kommen kann man im besagten link oben nachlesen. das wars
dann hier noch mal die liste der befehle: exit,log,status,shutdown,reload,details,version,debug,getuser,setuser,setserver,commands,keepalive,reread,restart
naja und daraus sind dann die paar zeilen code entstanden. vielleicht hilft es ja dem ein oder anderen.
in der oscam.conf müssen min. folgende 3 Zeilen rein
[monitor]
port = 15000 //ist der UDP Port auf dem gehorcht wird
nocrypt = 192.168.2.45 // IP oder IP Bereiche von dem die Connections kommen dürfen
port = 15000 //ist der UDP Port auf dem gehorcht wird
nocrypt = 192.168.2.45 // IP oder IP Bereiche von dem die Connections kommen dürfen
[account]
user = monitor //wäre dann der loginname
pwd = geheim //das passwort
monlevel = 2 //
user = monitor //wäre dann der loginname
pwd = geheim //das passwort
monlevel = 2 //
nun zum eigentlichen php script, ich hoffe es ist soweit selbsterklärend, ansonsten kann ich aber gerne nach bessern
hab eben noch mal drüber gelesen, ich kann ja ein paar worte drüber verlieren.
ich connecte per udp zum angegeben host + port, 2 sekunden sollte für den vorgang reichen. dann setze ich den timeout für die nachfolgende befehle auch auf 2 sek. das schick ich ein login monitor geheim und als antwort muss dann sowas kommen wie [AS2000]1|monitor logged in. naja und dann frag ich den status ab, mit dem befehl status. dann gibts zeilenweise output und ich filter mir den passenden raus. welche infos da alle zurück kommen kann man im besagten link oben nachlesen. das wars
<?php
$port = 15000;
$host = "192.168.2.10";
$user = "monitor";
$pwd = "geheim";
$fp = fsockopen("udp://$host", $port, $errno, $errstr,2);
if (!$fp)
{
out("Cant connect to $host",true);
}
stream_set_timeout($fp, 2);
fwrite($fp, "login $user $pwd\n");
$out = fgets($fp);
if(strstr($out,'[AS') == false)
{
out("invalid account",true);
}
fwrite($fp, "status\n");
while(($buf = fgets($fp)) !== false)
{
$line = explode("|", $buf);
if($line[8] == "server")
{
out("Server is up and running since ".$line[9]." - ".$line[10]);
break;
}
}
fclose($fp);
function out ($msg,$error = false)
{
echo $msg;
if($error)
{
exit;
}
}
?>
$port = 15000;
$host = "192.168.2.10";
$user = "monitor";
$pwd = "geheim";
$fp = fsockopen("udp://$host", $port, $errno, $errstr,2);
if (!$fp)
{
out("Cant connect to $host",true);
}
stream_set_timeout($fp, 2);
fwrite($fp, "login $user $pwd\n");
$out = fgets($fp);
if(strstr($out,'[AS') == false)
{
out("invalid account",true);
}
fwrite($fp, "status\n");
while(($buf = fgets($fp)) !== false)
{
$line = explode("|", $buf);
if($line[8] == "server")
{
out("Server is up and running since ".$line[9]." - ".$line[10]);
break;
}
}
fclose($fp);
function out ($msg,$error = false)
{
echo $msg;
if($error)
{
exit;
}
}
?>
Zuletzt bearbeitet: