Recuperation d'informations Telnet avec PHP

Recuperation d'informations Telnet avec PHP - PHP - Programmation

Marsh Posté le 06-05-2011 à 09:17:17    

Bonjour,
 
Je souhait créer une interface web en PHP qui me permette d'afficher certains résultats de commandes Telnet (sur un Firewall mais je ne pense pas que ça change quelquechose).
Ayant vu cette manière de faire sur plusieurs sites, voici mon code:
 
<?php
      $adresse = '192.168.5.10';
      $port = 23;
      $socket = fsockopen($adresse, $port);
      if (!$socket) {
                 echo "connexion échoué";
      }else{
                 echo "connexion reussi";
                 echo fgets($socket);   // Test de récupération d'affichage de la ligne actuelle
      }
?>
 
En ce qui concerne la connexion, visiblement tout se passe bien puisque j'obtiens l'affichage de "connexion reussi" sur ma page,  
MAIS en ce qui concerne l'affichage du fgets, j'obtiens des caractere etrange du genre "ÿû ÿû" avec meme quelques symboles tel qu'une fleche...etc
 
J'ai même éssayer d'utiliser le parametre optionel length de fgets avec un fgets($socket, 2048) mais ça ne change rien.
 
Une idée pour m'aider à résoudre ce problème ?

Reply

Marsh Posté le 06-05-2011 à 09:17:17   

Reply

Marsh Posté le 06-05-2011 à 13:26:31    

Pour utiliser telnet avec PHP, tu va devoir passer par SOAP...
 
Bonne galere :)

Reply

Marsh Posté le 06-05-2011 à 13:42:55    

GordonF_69 a écrit :

Pour utiliser telnet avec PHP, tu va devoir passer par SOAP...


 
C'est à dire ?!
Car sur ce tutoriel http://www.chrogeek.com/2008/08/tu [...] -avec-php/
personne ne parle de SOAP et ça ne semble pas aussi galere :/

Reply

Marsh Posté le 06-05-2011 à 14:14:49    

Les sockets sont bien ce qu'il te faut.
 
en fait, il faut que tu analyses caractère par caractère, et que tu récupères la commande correspondante :
http://fr.w3support.net/index.php?db=so&id=1189665

Reply

Marsh Posté le 06-05-2011 à 14:47:42    

Paulp : Pourrais-tu développer stp. Car perso, j'ai bien compris sur ton lien qu'une personne était confronté au même problème que moi, mais la réponse qui lui ai donné ne me parle pas du tout...

Reply

Marsh Posté le 06-05-2011 à 14:52:02    

Sebastien4444, instant Nespresso avec Paulp ???  [:clooney15] :D


Message édité par zbineulongtime le 06-05-2011 à 15:15:22

---------------
.
Reply

Marsh Posté le 06-05-2011 à 15:07:06    

zbineulongtime : je ne vois pas le rapport avec le sujet, une note d'humour que je ne dois pas comprendre. Merci d'avance de ne pas polluer mon topic

Reply

Marsh Posté le 06-05-2011 à 15:42:11    

Regarde le protocole telnet :http://www.faqs.org/rfcs/rfc854.html
Client et serveur communiquent via des commandes (IAC notamment)

Citation :


All TELNET commands consist of at least a two byte sequence:  the
   "Interpret as Command" (IAC) escape character followed by the code
   for the command.  The commands dealing with option negotiation are
   three byte sequences, the third byte being the code for the option
   referenced.  This format was chosen so that as more comprehensive use
   of the "data space" is made -- by negotiations from the basic NVT, of
   course -- collisions of data bytes with reserved command values will
   be minimized, all such collisions requiring the inconvenience, and
   inefficiency, of "escaping" the data bytes into the stream.  With the
   current set-up, only the IAC need be doubled to be sent as data, and
   the other 255 codes may be passed transparently.
 
   The following are the defined TELNET commands.  Note that these codes
   and code sequences have the indicated meaning only when immediately
   preceded by an IAC.
 
      NAME               CODE              MEANING
 
      SE                  240    End of subnegotiation parameters.
      NOP                 241    No operation.
      Data Mark           242    The data stream portion of a Synch.
                                 This should always be accompanied
                                 by a TCP Urgent notification.
      Break               243    NVT character BRK.
      Interrupt Process   244    The function IP.
      Abort output        245    The function AO.
      Are You There       246    The function AYT.
      Erase character     247    The function EC.
      Erase Line          248    The function EL.
      Go ahead            249    The GA signal.
      SB                  250    Indicates that what follows is
                                 subnegotiation of the indicated
                                 option.
      WILL (option code)  251    Indicates the desire to begin
                                 performing, or confirmation that
                                 you are now performing, the
                                 indicated option.
      WON'T (option code) 252    Indicates the refusal to perform,
                                 or continue performing, the
                                 indicated option.
      DO (option code)    253    Indicates the request that the
                                 other party perform, or
                                 confirmation that you are expecting
                                 the other party to perform, the
                                 indicated option.
      DON'T (option code) 254    Indicates the demand that the
                                 other party stop performing,
                                 or confirmation that you are no
                                 longer expecting the other party
                                 to perform, the indicated option.
      IAC                 255    Data Byte 255.


Si on prend


Message received :ÿý$  
Message received :ÿýÿþÿý  
Message received :ÿü!ÿû  


On prend pour chaque caractère le code latin-1 correspondant : http://www.ltg.ed.ac.uk/~richard/utf-8.html
Message received :ÿ(255)ý(253)$(036)
Message received :ÿ(255)ý(253)ÿ(255)þ(254)ÿ(255)ý(253)
Message received :ÿ(255)ü(252)!(033)ÿ(255)û(251)
 
Ca correspond donc, en TELNET à :
Message received :IAC DO ENV
Message received :IAC DO IAC DONT IAC DO
Message received :IAC WONT TOGGLE-FLOW-CONTROL IAC WILL
 
Bref, ça ne veut pas dire grand chose.
 
Donne le message que tu reçois, ça sera peut-être plus parlant ...

Reply

Marsh Posté le 06-05-2011 à 16:14:48    

Pour le code suivant :
 
<?php  
    $adresse = '192.9.200.92';
    $port = 23;
    $socket = fsockopen($adresse, $port);
    if (!$socket) {
        echo "connexion echoue";
    }else{
 echo "ok!<br>";
 $resul = '';
 $resul.= fgets($socket);
 echo $resul."<br>";
         
        fwrite($socket, "admin\r\n" ); // login que je suis censé taper une fois la connexion établie
 $resul2 = '';
        $resul2.= fgets($socket);
        echo $resul2."<br>";
    }
?>
 
voici ce que j'obtiens :
http://img11.hostingpics.net/thumbs/mini_722023Capture.png
 
Mais donc si je comprends bien, il m'est impossible de recevoir le texte qui s'affiche normalement en ligne de commande lors d'une connexion telnet ?

Reply

Marsh Posté le 06-05-2011 à 17:02:10    

Pour avoir une version utilisable, utilise ce code :

Code :
  1. <?php  
  2.    $adresse = '192.9.200.92';
  3.    $port = 23;
  4.    $socket = fsockopen($adresse, $port);
  5.    if (!$socket) {
  6.        echo "connexion echoue";
  7.    }else{
  8.        echo "ok!<br>";
  9.        $resul = '';
  10.        $resul.= fgets($socket);
  11.        echo $resul."<br>";
  12.        
  13.        fwrite($socket, "admin\r\n" ); // login que je suis censé taper une fois la connexion établie
  14.        while($char = fgetc($socket))
  15.            echo ord($char) . ' ';
  16.    }
  17. ?>


Reply

Marsh Posté le 06-05-2011 à 17:02:10   

Reply

Marsh Posté le 06-05-2011 à 17:13:32    

Il y a ici une classe qui implémente tout ça :
http://www.dali.net.nz/Telnet.class.php.txt

Reply

Marsh Posté le 09-03-2016 à 12:36:00    

Salut tout le monde,
Je ré-ouvre ce sujet . Le problème est-il bien résolu?

Reply

Marsh Posté le 24-07-2018 à 16:06:51    

sebastien4444 a écrit :

zbineulongtime : je ne vois pas le rapport avec le sujet, une note d'humour que je ne dois pas comprendre. Merci d'avance de ne pas polluer mon topic


 
De toutes façons tu comprends jamais rien toi  
 
https://media.tenor.com/images/6d6ab4c495357fb14f0383ff2a076b4a/tenor.gif


---------------
.
Reply

Marsh Posté le 24-07-2018 à 16:43:52    

Oh toi ! It's been a long time !!  :bounce:

Reply

Marsh Posté le 24-07-2018 à 17:19:42    

Purée, ce déterrage de topic juste pour se friter  :ouch:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed