1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Oscam Server Monitor

Dieses Thema im Forum "Oscam Talk Archiv" wurde erstellt von milsani110, 9. März 2013.

  1. milsani110
    Offline

    milsani110 Newbie

    Registriert:
    22. Januar 2013
    Beiträge:
    8
    Zustimmungen:
    1
    Punkte für Erfolge:
    3
    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
    [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
    in der oscam.user müssen folgende Zeilen eingetragen werden
    [account]
    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;
    }
    }
    ?>
     
    Zuletzt bearbeitet: 12. März 2013
    #1

Diese Seite empfehlen