PHP: Einen Net Send Befehl über PHP bei Cisco Auswertung versenden....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP: Einen Net Send Befehl über PHP bei Cisco Auswertung versenden....

    Hallo zusammen,

    ich bräuchte mal ein wenig Hilfe von´nem PHP-Fuchs...

    Ich bin gerade dabei, per CMD und dem PHP Modul einige Automationen und Statusabfragen für meinen Cisco zu erstellen. Dazu gehört z.B. neu einwählen, Speicher löschen, IDS und FW ein- bzw. ausschalten usw.
    Zusätzlich würde ich mir gerne einige spezielle Aussgaben per Net Send auf meinen Hauptrechner senden, aber ich kenne nicht den genauen Ablauf und das nötige "Know How".

    Auf dem Script ist noch ein Ping auf die Variable $Host, die wäre nicht mehr von nöten. Vieleicht könnte man die Umbauen, $Host für den Zielrechner (192.168.0.33) und der CMD-Aufruf für den Net Send.... !?!?

    Wäre super, wenn sich jemand mal das Script anschauen könnte und mir sagt, wie ich da weiter komme...

    ###

    $host = "192.168.0.5";

    // $cmd = escapeshellcmd("net.exe send $host $info"); |hier habe ich große Probleme



    $res = `$cmd`;
    $cfgServer = "192.168.0.5";
    $cfgPort = 23;
    $cfgTimeOut = 1;

    // open a socket

    $fp = fsockopen($cfgServer, $cfgPort, &$errno, &$errstr, $cfgTimeOut);

    if(!$fp) {
    echo "Connection failed\n";
    exit();
    }
    else {
    echo "Connected\n";
    $tmp = fgets($fp,48);

    }
    $start = time();
    socket_set_timeout($fp, 1);

    fputs($fp, "user\n");
    $tmp = fgets($fp,32);

    fputs($fp, "password\n");
    $tmp = fgets($fp,32);

    fputs($fp, "en\n");
    fputs($fp, "enablesecretpassword\n");

    fputs($fp, "clear ip nat translation *\n");
    fputs($fp, "clear interface dialer 1\n");
    fputs($fp, "ping arcor.de\n");

    fputs($fp, "sh in di 1 | inc Internet address is\n"); //das Ergebnis hätte ich gerne per Net Send auf meinen Rechner 192.168.0.33
    $info = $tmp //ist das so richtig??

    echo "
    ";
    while ($tmp !="Routername#") {

    $tmp = fgets($fp,80);
    echo $tmp,"
    ";
    }

    fclose($fp);




    }
    else {
    echo "Ziel nicht erreichbar, Socket wird nicht geöffnet !
    ";
    }
    ?>

    Im voraus erst mal danke!
    Zuletzt geändert von piercing-huber; 11.10.2003, 16:10.
    Grüße

    Piercing-Huber

  • #2
    Sodelle, jetzt bin ein ganzes Stück weiter gekommen!

    Inzwischen bekomme ich eine Net Send Message! Leider nur mit dem falschen Ergebniss! Die Variable $info wird nicht richtig verstanden oder ich definiere sie falsch (was ich eher glaube...).

    <?php
    $cfgServer = "192.168.0.5";
    $cfgPort = 23;
    $cfgTimeOut = 1;
    $host = "192.168.0.33";

    // open a socket-&$errno, &$errstr,

    $fp = fsockopen($cfgServer, $cfgPort, $cfgTimeOut);

    if(!$fp) {
    echo "Connection failed\n";
    exit();
    }
    else {
    echo "Connected\n";
    $tmp = fgets($fp,48);

    }
    $start = time();
    socket_set_timeout($fp, 1);

    fputs($fp, "user\n");
    $tmp = fgets($fp,32);

    fputs($fp, "password\n");
    $tmp = fgets($fp,32);


    fputs($fp, "sh int tunnel 0 | inc Tunnel source\n");
    $info = ???; //[COLOR=crimson]Wie kann ich hier das Ergebnis der Zeile zuvor der Variable $info zuweisen???[/COLOR]

    $cmd = escapeshellcmd("net send $host $info");

    echo "<p>";
    while ($tmp !="Routername>") {

    $tmp = fgets($fp,80);
    echo $tmp,"<br>";
    }

    $res = `$cmd`;
    fclose($fp);
    ?>

    Drumm schau ich genauso ratlos
    Grüße

    Piercing-Huber

    Kommentar


    • #3
      PHP-Code:
      $info "ging";
      fputs($fp"sh int tunnel 0 | inc Tunnel source\n") OR $info "ging nicht"
      wenn ich das nun ric htig verstanden habe...
      ungetestet
      mfg

      Kommentar


      • #4
        Hi!

        leider geht es mir nicht um den Ping, der ist mir Wurschd, hehe.

        Hab ihn auch schon aus dem oberen Posting "heraus"editiert!

        Mir geht es darum, das Ergebnis der Zeile

        fputs($fp, "sh int tunnel 0 | inc Tunnel source\n");

        mit einer Variablen ($info) zu versehen (auf commando-zeile sieht das Ergebnis so aus: [COLOR=red]Tunnel source x.x.x.x (Dialer1), destination x.x.x.x[/COLOR]

        Das 2te Script versendet schon ein Net Send, nur mit dem falschen Ergebnis.

        Ich öffne das Script mit der PHP.exe. es geht eine DOS Box auf, in der alles relativ schnell abläuft, man kann kaum mitlesen.
        Deshalb würde ich gerne zusätzlich das Net Send incl. Ergebnis ausgeben.
        Grüße

        Piercing-Huber

        Kommentar


        • #5
          Hat mir da wirklich keiner eine Lösung????

          Grüße

          Piercing-Huber

          Kommentar


          • #6
            Geht das so nicht:
            PHP-Code:
            $info fputs($fp"sh ...); 
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              Hallo!!!

              @XGremliN
              Nein, leider geht das so nicht, da
              fputs($fp, "sh int tunnel 0 | inc Tunnel source\n");
              ein Befehl an den Cisco sendet und
              Tunnel source 82.82.70.5 (Dialer1), destination 82.82.68.18
              wäre das Ergebnis.
              Eben dieses Ergebnis würde ich gerne eine Variable zuweisen ($info) und diese per net send auf meinen Rechner schicken.
              Mein Problem ist, dass ich nicht weiß, wie man eine Ausgabe in einem CMD-Fenster auslesen kann.Das CMD-Fenster läuft übrigends im Hintergrund ab, man bekommt nichts mit davon.

              Hier nochmals das Net-Send fähige Script...

              <?php
              $cfgServer = "192.168.0.5";
              $cfgPort = 23;
              $cfgTimeOut = 1;
              $host = "192.168.0.33";

              $fp = fsockopen($cfgServer, $errno, &$errstr, $cfgPort, $cfgTimeOut);

              if(!$fp) {
              echo "Connection failed\n";
              exit();
              }
              else {
              echo "Connected\n";
              $tmp = fgets($fp,48);

              }
              $start = time();
              socket_set_timeout($fp, 1);

              fputs($fp, "user\n");
              $tmp = fgets($fp,32);

              fputs($fp, "password\n");
              $tmp = fgets($fp,32);

              fputs($fp, "sh int tunnel 0 | inc Tunnel source\n");
              $info = fgets($fp);

              echo "<p>";
              while ($tmp !="Routername>") {

              $tmp = fgets($fp,80);
              echo $tmp,"<br>";
              }

              $cmd = escapeshellcmd("net send $host $info"); //hier wird der Net Send ausgeführt
              $res = `$cmd`;

              fclose($fp);
              ?>

              So wie das Script jetzt ist, bekomme ich eine Net Send Meldung, aber leider nicht das korrekte Ergebnis. Ich habe jetzt schon 3 Tage lang rum probiert und nach einer Lösung gesucht, aber ohne Erfolg.

              Wäre klasse, wenn jemand die Lösung hätte...
              Grüße

              Piercing-Huber

              Kommentar

              Lädt...
              X