Jump to content

Camd Reset in Homepage einbinden


cyres

Empfohlene Beiträge

Hi!

Habe mal ne Frage an die Fachleute hier.Ist es möglich Irgendwie per Button auf ner Homepage nen Camd Reset auf meiner DBOX auszuführen?Wäre das machbar?

( Button auf Homepage klicken und dann Automatisch Camd Reset auf meiner Dbox)

 

Achja das ganze wäre natürlich in nem geschützten Bereich!!! :huh:

 

Geht darum das ich meinen Clienten anbieten möchte, einen Reset auszuführen, falls CS mal wieder hängt!Ohne ständig auf mich warten zu müssen!Und die leider keine Ahnung von Telnet haben wäre das eine Interessante Lösung wie ich finde.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum leitest Du nicht einen Port auf das Webinterface der Box durch den Router weiter?

 

Du brauchst nur einen Dyndns-Account..diesen im Router konfigurieren...dann erreichst Du Deine Box zb so:

cyres.dyndns.org:47770

 

Hier müsste der Externe-Port 47770 im Router auf den Internen-Port 80 der Box-Ip "geforwarded" werden.

 

!!! UNBEDINGT die Authentifikation im WEBSERVER der Box einschalten und das Passwort ändern !!!!

 

Theoretisch könntest Du auch den Telnetport 23 umleiten.

Dann könntest Du über die Telnetconsole auf die Box und mit operations camd_reset einen Reset "remote" anstoßen.

..Testen !

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oder, was natürlich zuerst mal ein wenig Aufwand bedeutet, eine Rechner als Server einrichten. Die Camd3 Suite hat ein WebIF und dort kannst Du den Server starten und stoppen und auch einen Rest auf dem WebIF ausführe.

 

Zumal ich sagen muss, das der Camd3 Server auf meinem PC wesentlich stabiler läuft als auf meinen Boxen....

 

Aber warscheinlich ist die Antwort von Admin die bessere, wollte nur noch andere Möglichkeiten aufzeigen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

@amdinside

Ähm ich glaub das ist nicht was ich meinte!!!Oder ich verstehs nicht richtig. Kann ja auch sein :huh:

Wollte eigentlich nur den Button erlauben ,wenn ich den Port weiterleite haben sie kompletten zugriff auf yweb!!!

@BA.STA-Buliwyf

 

also nen Extra Server wollt ich nicht erst laufen lassen aber danke. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

also wenn ich dich richtig verstehe willst du auf deiner homepage wo bestimmte leute dann zugriff haben für diese dann einen button haben der dann bei denen auch wieder einen camd reste ausführt?

 

dann musst du zwangsläufig aus dem internet zugriff auf die boxen haben sonst funktioniert das nicht

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Bobbelsche

 

Ja der Server unterstützt PHP!connect funktion???Ja aber wie ???

 

@Eiermann666

 

Nein, nicht auf ihren eigenen nen Reset machen sondern auf meiner = CS Server!!!

Und auf die Box Zugriff per Inet wäre ja nicht das Problem.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe hier fix mal was zusammengestellt. Funktioniert auch soweit ich das sagen

kann. Wenn du ein bißchen PHP beherrschst, solltes du das Script problemlos

anpassen können. Das RAR enthält einmal das PHP Script für deinen Webserver

und ein paar Plugins für die DBox, darunter auch mein MyEXEC Plugin, gepackt in

einem tar.gz. Das tar.gz einfach in das Rootverzeichnis deiner Box entpacken, das

PHP Script konfigurieren (Boxaddresse eintragen) und einen entsprechenden

Button auf der Homepage anlegen. Ich empfehle Ajax zum Aufrufen des PHP

Scriptes.

 

Gruß fackel

remote_restart.rar

Link zu diesem Kommentar
Auf anderen Seiten teilen

So hab mal was ausprobiert und es will nicht so richtig.Muss dazu sagen bin noch Anfänger was die ganze Sache angeht!Habe da was gefunden das per Ajax das php Script aufruft.Nun ist das Problem das ich ne Fehlermeldung bekomme.Jetzt denke ich das mein Server das ganze Blockt bzw diesen Aufruf Verbietet.

 

 

<br />

<b>Warning</b>:  file() [<a href='function.file'>function.file</a>]: URL file-access is disabled in the server configuration in <b>/srv/www/html/Joomla/Skripte/restart.php</b> on line <b>9</b><br />

<br />

<b>Warning</b>:  file(http://xx.dyndns.xx:21213/cgi-bin/exec?myexec&/var/plugins/camdrestart.sh) [<a href='function.file'>function.file</a>]: failed to open stream: no suitable wrapper could be found in <b>/srv/www/html/Joomla/Skripte/restart.php</b> on line <b>9</b><br />

Link zu diesem Kommentar
Auf anderen Seiten teilen

So habe was gefunden ohne meinem Provider wieder Geld in die Tasche zuschieben. :)

 

 

Einfach ein Ajax Script erstellen das dann die telnet.php Aufruft

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

 

</head>

<body>

<script type="text/javascript" language="javascript">

 

    var http_request = false;

 

    function macheRequest(url) {

 

        http_request = false;

 

        if (window.XMLHttpRequest) { // Mozilla, Safari,...

            http_request = new XMLHttpRequest();

            if (http_request.overrideMimeType) {

                http_request.overrideMimeType('text/xml');

                // zu dieser Zeile siehe weiter unten

            }

        } else if (window.ActiveXObject) { // IE

            try {

                http_request = new ActiveXObject("Msxml2.XMLHTTP");

            } catch (e) {

                try {

                    http_request = new ActiveXObject("Microsoft.XMLHTTP");

                } catch (e) {}

            }

        }

 

        if (!http_request) {

            alert('Ende :huh: Kann keine XMLHTTP-Instanz erzeugen');

            return ;

        }

        http_request.onreadystatechange = alertInhalt;

        http_request.open('GET', url, true);

        http_request.send(null);

 

 

    }

 

    function alertInhalt() {

 

        if (http_request.readyState == 4) {

            if (http_request.status == 200) {

                alert(http_request.responseText);

            } else {

                alert('Bei dem Request ist ein Problem aufgetreten.');

            }

        }

 

    }

 

</script>

<h3>  CS-Reset</h3>

 

 

<input type=submit onclick=" macheRequest('telnet.inc.php')" id="button.csreset" value="CS-Reset" />

 

 

    

 

 

 

 

</body>

 

</html>

 

 

Dann nur noch die telnet.php erstellen

 

 

 

<?

session_start();

        header("Expires: Sat, 05 Nov 2005 00:00:00 GMT");

        header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");

        header("Cache-Control: no-store, no-cache, must-revalidate");

        header("Cache-Control: post-check=0, pre-check=0", false);

        header("Pragma: no-cache");

 

error_reporting(-1);

 

class Telnet {

// thies_(at)_thieso.net 2001

 

var $sock = NULL;

 

function telnet($host,$port) {

        $this->sock = fsockopen($host,$port);

  socket_set_timeout($this->sock,2,0);

}

 

    function close() {

        if ($this->sock)

            fclose($this->sock);

        $this->sock = NULL;

}

 

    function write($buffer) {

  $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);

        fwrite($this->sock,$buffer);

}

 

function getc() {

  return fgetc($this->sock);

}

 

    function read_till($what)  {

        $buf = '';

  while (1) {

   $IAC  = chr(255);

 

   $DONT = chr(254);

   $DO   = chr(253);

 

   $WONT = chr(252);

   $WILL = chr(251);

 

   $theNULL = chr(0);

 

   $c = $this->getc();

 

   if ($c === false)

     return $buf;

 

   if ($c == $theNULL) {

    continue;

   }

 

   if ($c == "\021") {

    continue;

   }

 

   if ($c != $IAC) {

    $buf .= $c;

 

    if ($what == (substr($buf,strlen($buf)-strlen($what)))) {

     return $buf;

    } else {

     continue;

    }

   }

 

   $c = $this->getc();

 

   if ($c == $IAC) {

    $buf .= $c;

   } else if (($c == $DO) || ($c == $DONT)) {

    $opt = $this->getc();

   // echo "we wont ".ord($opt)."\n";

    fwrite($this->sock,$IAC.$WONT.$opt);

   } elseif (($c == $WILL) || ($c == $WONT)) {

    $opt = $this->getc();

   // echo "we dont ".ord($opt)."\n";

    fwrite($this->sock,$IAC.$DONT.$opt);

   } else {

   // echo "where are we? c=".ord($c)."\n";

   }

  }

 

}

}

 

$tn = new telnet("xx.dynddns.xx",23);

echo $tn->read_till("ogin: ");

$tn->write("root\r\n");

echo $tn->read_till("word: ");

$tn->write("Passwort\r\n");

echo $tn->read_till(":> ");

$tn->write("operations camd_reset\r\n");

echo $tn->read_till(":> ");

usleep(12500000);

echo $tn->close();

?>

 

Natürlich im Router port 23 oder irgend einen anderen auf die DBOX IP und port 23 Umleiten !Fertig!!!Bei mir gehts!!! :D

 

 

EDIT: Habe es noch ein bißchen Anpassen müssen ,da der Browser das ganze cached.Es aber nicht soll.Weil dann hätte sich der Aufruf nur einmal starten lassen und man hätte den Cache von Hand leeren müssen!

 

Kritik Erwünscht

Falls was Falsch sein sollte oder zu verbessern ist!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Na kein Plugin eher ne kleine Spielerei!!!Ist ja alles auf Basis von HTML und PHP ,es werden keine Extra Dateien auf der Dbox gebraucht!Da es über Telnet läuft.Die Dateien von fackelkind brauchst dafür nicht installieren ,habe seine Variante ,leider nicht zum laufen gebracht .Da man scheinbar etwas an der php.ini hätte verändern müssen und sich das mein provider immer gut bezahlen lässt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...