Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Recuperation d'informations Telnet avec PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperation d'informations Telnet avec PHP

n°2074221
sebastien4​444
Posté le 06-05-2011 à 09:17:17  profilanswer
 

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 ?

mood
Publicité
Posté le 06-05-2011 à 09:17:17  profilanswer
 

n°2074306
GordonF_69
Posté le 06-05-2011 à 13:26:31  profilanswer
 

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

n°2074316
sebastien4​444
Posté le 06-05-2011 à 13:42:55  profilanswer
 

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 :/

n°2074324
Paulp
~, sweet ~
Posté le 06-05-2011 à 14:14:49  profilanswer
 

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

n°2074332
sebastien4​444
Posté le 06-05-2011 à 14:47:42  profilanswer
 

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...

n°2074336
zbineulong​time
☱☱☱☱☱☱☱☱☱☱☱☱
Posté le 06-05-2011 à 14:52:02  profilanswer
 

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


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

---------------
Zbin
n°2074339
sebastien4​444
Posté le 06-05-2011 à 15:07:06  profilanswer
 

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

n°2074352
Paulp
~, sweet ~
Posté le 06-05-2011 à 15:42:11  profilanswer
 

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 ...

n°2074366
sebastien4​444
Posté le 06-05-2011 à 16:14:48  profilanswer
 

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 ?

n°2074381
Paulp
~, sweet ~
Posté le 06-05-2011 à 17:02:10  profilanswer
 

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. ?>


mood
Publicité
Posté le 06-05-2011 à 17:02:10  profilanswer
 

n°2074384
Paulp
~, sweet ~
Posté le 06-05-2011 à 17:13:32  profilanswer
 

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

n°2277253
metallica2​2
Posté le 09-03-2016 à 12:36:00  profilanswer
 

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

n°2318261
zbineulong​time
☱☱☱☱☱☱☱☱☱☱☱☱
Posté le 24-07-2018 à 16:06:51  profilanswer
 

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


---------------
Zbin
n°2318267
sebastien4​444
Posté le 24-07-2018 à 16:43:52  profilanswer
 

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

n°2318269
rufo
Pas me confondre avec Lycos!
Posté le 24-07-2018 à 17:19:42  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Recuperation d'informations Telnet avec PHP

 

Sujets relatifs
Upload de fichiers en PHP : corruption des donnéesProblème de récupération de données
[Php/Sql] Problème Order By[PHP] Utiliser 2 requêtes SQL dans 1 boucle ?
[PHP] Recherche script d'enchères[PHP/MYSQL] Sécurité suffisante ?
RegExp PHP ou .HtaccessProbleme liste deroulante en PHP
Questionnaire, récupération de données 
Plus de sujets relatifs à : Recuperation d'informations Telnet avec PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR