cos33cos33: exe auf Server starten

Hallo selfhtml-Forum :)
Ich habe da mal eine Frage, ich habe auf meinem PC einen Server laufen welcher eine Website zur Verfügung stellt. Ich würde nun gerne über einen anderen PC eine exe-Datei auf dem Server starten können.
Wie mache ich das?

Zum Hintergrund: Ich möchte gern auf meinem Handy die Website aufrufen können und über "Starte exe" (zum Beispiel als Link in Form von a href="blabla") auf dem Server eine exe-Datei starten. Also den PC mit dem Handy steuern.
Im Detail geht es um ein Programm, dass ich mit Parametern starten kann und dieses schaltet über einen USB-Anschluss eine Steckdose ein oder aus.

Sprich, ich sitze auf dem Sofa oder bin sogar unterwegs und kann zu Hause das Licht ein und ausschalten.

Ich hoffe Ihr habt gute Ideen und bin für jede Hilfe dankbar! ;)

lg, Tim

  1. Hallo,

    Ich möchte gern auf meinem Handy die Website aufrufen können und über "Starte exe" (zum Beispiel als Link in Form von a href="blabla") auf dem Server eine exe-Datei starten. Also den PC mit dem Handy steuern.

    vorausgesetzt, der Server läuft auf einer Windows-Maschine, denn ein Linux könnte mit einer "exe-Datei" nicht gerade viel anfangen (WINE mal ausgeklammert).

    Im Detail geht es um ein Programm, dass ich mit Parametern starten kann und dieses schaltet über einen USB-Anschluss eine Steckdose ein oder aus.
    Sprich, ich sitze auf dem Sofa oder bin sogar unterwegs und kann zu Hause das Licht ein und ausschalten.

    Konfiguriere das Programm für den Server als CGI. Dann muss es nur in der Lage sein, Kommandozeilen-Parameter auszuwerten (die du als URL-Parameter übergibst), und es muss eine rudimentäre HTTP-Antwort auf stdout ausgeben - wenigstens einen gültigen HTTP-Response-Header, sinnvollerweise aber auch eine Kurzmeldung über den erfolgreichen Vollzug.

    So long,
     Martin

    --
    Verliebt:    Er spricht, sie lauscht.
    Verlobt:     Sie spricht, er lauscht.
    Verheiratet: Beide sprechen, und die Nachbarn lauschen.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hallo Martin,
      danke für deine schnelle Antwort! Leider muss ich sagen, habe ich nicht all zu viel verstanden... Server etc sind ziemliches Neuland für mich! Ich verfüge nur über grobe HTML-Kenntnisse. Als frag ich mal los:

      "Konfiguriere das Programm für den Server als CGI" - das Programm zur Steuerung der Steckdosenleiste ist eine exe-Datei. Soll ich daran "rumbauen" und es zu einer CGI machen? Oder wie meinst du das?

      Ich hatte da eher dran gedacht, dass ich mit einem Befehl etwas ins cmd schreiben kann, nämlich: "USBSteckdosenprogramm.exe -socket 1 -ON"
      Das wäre die Schreibweise um die erste Steckdose anzuschalten. Meintest du, dass ich dies per URL-Parameter übergeben könnte? Oder habe ich dich jetzt ganz falsch verstanden?

      Vielen Dank für die Antworten, ich hoffe ich stelle mich nicht all zu blöd an...

      Lg,
      Tim

      1. Hallo,

        danke für deine schnelle Antwort! Leider muss ich sagen, habe ich nicht all zu viel verstanden... Server etc sind ziemliches Neuland für mich! Ich verfüge nur über grobe HTML-Kenntnisse.

        oh, das ist natürlich was anderes - da du schreibst, dass du selbst einen Webserver (vermutlich Apache) auf deinem Rechner betreibst, habe ich gewisse Vorkenntnisse in der Serverkonfiguration angenommen und bin auch davon ausgegangen, dass es sich bei dem externen Programm um ein selbst geschriebenes handelt.

        "Konfiguriere das Programm für den Server als CGI" - das Programm zur Steuerung der Steckdosenleiste ist eine exe-Datei. Soll ich daran "rumbauen" und es zu einer CGI machen? Oder wie meinst du das?

        Das ist in erster Linie eine Sache der Serverkonfiguration. Das Programm muss sich nur an gewisse Rahmenbedingungen halten.

        Ich hatte da eher dran gedacht, dass ich mit einem Befehl etwas ins cmd schreiben kann, nämlich: "USBSteckdosenprogramm.exe -socket 1 -ON"

        Okay. Das könnte man hinkriegen. Gibt das Programm dann auch etwas aus (auf der Kommandozeile)? Vermutlich ja. Du könntest es aber in einer Batchdatei aufrufen, und die Batchdatei kann mit ein paar echo-Anweisungen die nötigen HTTP-Header ausgeben.
        Dann läuft es darauf hinaus, dem Server den Dateityp ".bat" bekanntzumachen, und ihn zu veranlassen, den entsprechend mit cmd.exe als externes Programm zu starten.

        Das wäre die Schreibweise um die erste Steckdose anzuschalten. Meintest du, dass ich dies per URL-Parameter übergeben könnte? Oder habe ich dich jetzt ganz falsch verstanden?

        Nee, ich glaube, du hast schon richtig verstanden. Die Richtung stimmt zumindest, da könnte was draus werden.

        Vielen Dank für die Antworten, ich hoffe ich stelle mich nicht all zu blöd an...

        Noch nicht. ;-)
        Auf bestimmten Fachgebieten kein Experte zu sein, ist ja keine Schande.

        Ciao,
         Martin

        --
        F: Was ist schlimmer: Alzheimer oder Parkinson?
        A: Parkinson. Lieber mal ein Bier vergessen zu zahlen, als eins verschütten.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi Martin,
          Also, das Programm leist folgende Prameter: -On/off -Gerätenamen -Steckplatz
          Bei mir ist das zb. pm.exe -on -SIS-PM -Steckplatz1
          Dies funktioniert in der cmd soweit, gibt jedoch keine Antwort zurück. Das Programm samt Parametern in einer Batch-Datei abzulegen habe ich auch überlegt, das funktioniert.
          Momentan läuft bei mir ein "KFWS-Server", Apache ist mir aber auch bekannt und ich überlege darauf umzusteigen. Kann man denn dort in den Einstellungen einfach definieren, welche Dateien er als bekannt voraussetzt und mit welchem Programm er sie standardmäßig öffnen soll?
          Ich werde jetzt mal Apache installieren und schauen ob ich soweit komme ;)

          Ciao,
          Tim

  2. Moin!

    Beachte die Backticks in $dummy=pfad\_zur/schalter.exe ein und ... aus.
    Du musst in der php.ini ggf. das Ausführen von Systembefehlen zulassen.

    Ich weise Dich darauf hin, dass derlei Spielereien gefährlich sein können.

    <html>  
    <head>  
    <title>Lichtschalter</title>  
    </head>  
    </body>  
    ___PHP0___  
    <form method="post" action="<?php print $_SERVER['PHP_SELF']">  
    User:<input type="text" name="user" /><br />  
    Pass:<input type="password" name="pass" /><br />  
    <input type="submit" name="ein_aus" value="ein"/><input type="submit" name="ein_aus" value="aus"/>  
    </form>  
    ___PHP1___  
    </body>  
    </head>
    

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Hi fastix,
      ich habe jetzt versuch folgendes umzusetzten:
      Meine index.html:

      <html>  
      <head>  
      <title></title>  
      <meta name="author" content="Tim">  
      <meta name="editor" content="html-editor phase 5">  
      </head>  
      <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">  
        
      <a href="php.ini"> Licht </a>  
        
      </body>  
      </html>  
      
      

      und die php.ini

        
      <html>  
      <head>  
      <title> Lichtschalter </title>  
      </head>  
      </body>  
      <?php  
      if ('cos33cos33' == $_POST['user'] &&  'xxx' == $_POST['pass']) {  
             if ('ein' == $_POST['ein_aus'])  
                  $dummy=`C:\Program Files (x86)\Mp3tag\Mp3tag.exe` ;  
                   print '<h1>Licht eingeschaltet.</h1>'  
             } else {  
                  $dummy=`C:\Program Files (x86)\Mp3tag\Mp3tag.exe` ;  
                   print '<h1>Licht ausgeschaltet.</h1>'  
             }  
      } else {  
      ?>  
      <form method="post" action="<?php print $_SERVER['PHP_SELF']">  
      User:<input type="text" name="user" /><br />  
      Pass:<input type="password" name="pass" /><br />  
      <input type="submit" name="ein_aus" value="ein"/>  
      <input type="submit" name="ein_aus" value="aus"/>  
      </form>  
      <?php  
      }  
      ?>  
      </body>  
      </head>  
      
      

      Jetzt hätte ich gedacht, dass ich die index.html aufrufe und auf "Licht" klicke, dann öffnet sich die php.ini und in dieser gebe ich cos33cos33 und xxx ein und drücke auf ja --> Mp3tag.exe sollte sich öffnen? Oder mache ich jetzt wieder einen Denkfehler? Der Browser gibt aber leider aus:

      Für folgende Webadresse wurde keine Webseite gefunden: file:///C:/Program%20Files%20(x86)/KeyFocus/KFWS/htdocs/%3C?php%20print%20$_SERVER['PHP_SELF'].

      Danke für die Hilfe, ich fühle mich total blöd :/ hehe

      lg,
      Tim

      1. Moin!

        Für folgende Webadresse wurde keine Webseite gefunden: file:///C:/Program%20Files%20(x86)/KeyFocus/KFWS/htdocs/%3C?php%20print%20$_SERVER['PHP_SELF'].

        ich habe auf meinem PC einen Server laufen welcher eine Website zur Verfügung stellt

        Dann musst Du ja in meinem Skript nur noch die Typos korrigieren und das Skript auch über den Webserver, der hoffentlich PHP kann, aufrufen. Das lokale Dateisystem erreichst Du ja auch nicht von Spanien aus, es sei denn, Du schleppst den Rechner und ein 2.000 km langes USB-Kabel mit.

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

      2. Danke für die Hilfe, ich fühle mich total blöd :/ hehe

        Ja, das trifft es so ziemlich. Wer nicht lesen kann, sollte sowas erst gar nicht probieren. Wenn du gelernt hast, Vorschläge so umzusetzen, wie sie geschrieben wurden, bist du evtl. mal so weit um mit Systembefehlen zu spielen. Bis dahin bist zu schliuchtweg ein Sicherheitsrisiko für dich und für andere, da dein Server von irgendjemand als Spamschleuer oder schlimmeres benutzt werden wird.

        1. Klasse Multi, solche Leute wie dich braucht die Welt bestimmt nicht! Danke der Hilfe. Trottel.

          1. Moin!

            Klasse Multi, solche Leute wie dich braucht die Welt bestimmt nicht! Danke der Hilfe. Trottel.

            Die Welt braucht aber Leute, die naseweise Exemplare der Gattung "Ich weiß zwar nichts, mache aber einfach mal alles mögliche." warnen. Das Du zur Untergattung "Ich weiß zwar nichts, mache aber alles einfach mal, höre nicht auf Warnungen und beleidige die Warnenden!" gehörst konnte Multi nicht wissen.

            Die Warnung war deswegen nicht weniger berechtigt. Was Du vor hast ist, wenn nicht alles (und das ist sehr viel) richtig gemacht wird, gefährlich.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix

          2. Klasse Multi, solche Leute wie dich braucht die Welt bestimmt nicht!

            Interessant. Die Welt braucht keine Leute, die anderen sagt, dass das, was sie tun, gefährlich ist. Spring bitte von der nächsten Brücke, die passiert bestimmt nichts ..... wenn ich dir jetzt sage, sowas kann dich umbringen, beleidigst du mich ja wieder, auch wenn es die Wahrheit ist.

            Danke der Hilfe. Trottel.

            Achja, natürlich bin ich der Trottel. Dass DU derjenige bist, der den Ärger bekommt, scheinst du nicht zu kapieren. Mach nur weiter so, jeder versaut sich sein Leben auf die weise, die er für richtig hält.

    2. Moin!

      Korrektur:

      <form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">

      Leider muss ich sagen, habe ich nicht all zu viel verstanden... Server etc sind ziemliches Neuland für mich! Ich verfüge nur über grobe HTML-Kenntnisse.

      Dann solltest Du das Programm auf keinen Fall für CGI konfigurieren. Und überhaupt bist dann der ideale Kandidat für ein "LASS ES BLEIBEN, DAFÜR BIST DU NICHT ERWACHSEN GENUG!".

      Aber es ist ja Dein Rechner, der durch Dein Handeln unsicher wird.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      1. Hi!

        Korrektur:
        <form method="post" action="<?php print $_SERVER['PHP_SELF']; ?>">

        Immer noch nicht richtig, da fehlt die Kontextwechselbeachtung:

        <form method="post" action="<?php print htmlspecialchars($_SERVER['PHP_SELF']); ?>">

        Abgesehen davon läuft das Script auch nur, wenn Notice-Meldungen ausgeschaltet sind, da ohne Prüfung Werte aus dem $_POST-Array zu lesen versucht werden.

        Lo!