Lire/ecrire via une connexion telnet en socket

Lire/ecrire via une connexion telnet en socket - PHP - Programmation

Marsh Posté le 15-06-2009 à 16:15:36    

Salut. Je tente d'envoyer des commandes a distance via TELNET sur un switch mais j'y arrive pas.
Ici je crée le socket, puis après je voudrais lire le flux telnet de mon socket pour envoyer les commandes que je souhaite suivant les caractères lu par le pointeur.
En gros quand il y a "login:" sur le pointeur qu'il envoi mon login a mon switch via le socket crée.

Code :
  1. /**************************************/
  2. $target = '10.11.10.93'; //remote IP
  3. $user   = 'isadmin'; //login  
  4. $pass   = 'Elmoricq-edit : on va eviter le password en clair, hein'; //password
  5. $port = '23'; //port, 23 for telnet
  6. /**************************************/
  7. // is form submitted ?
  8. if (isset($_POST['input'])) {
  9.  $num = $_POST['line_num'];
  10.  if ($_POST['xDSL']=="VDSL" ){
  11.   $data = "info configure bridge port 1/1/9/{$num} flat /r/n info xdsl line 1/1/9/{$num}\r\n";
  12.  }
  13.  else{
  14.   $data = "help \r\n";
  15.  }
  16.  $fp = fsockopen($target, $port); // socket creation
  17.  if(!$fp) {
  18.   echo 'Telnet connexion to '.$target.'failed'; //if connexion fails
  19.  }
  20.  else {
  21.   $buffer = fgets($fp,6); 
  22.    if ($buffer=="login:" ){
  23.     fwrite($fp,$user."\r\n" );
  24.    }
  25.   $buffer = fgets($fp,9);
  26.    if ($buffer=="password:" ){
  27.     fwrite($fp,$user."\r\n" );
  28.    }
  29.   }
  30.   $i=0;
  31.   stream_set_timeout($fp, 0, 2500); // delay in microseconds
  32.   echo '<textarea rows="2" cols="20">';
  33.   while ($i<300) {//number of lines to read
  34.    $i++;
  35.    $line = fgets($fp, 2048);
  36.    echo $line.'
  37.    ';
  38.   }
  39.   echo '</textarea>';
  40.  }
  41. else{...}


Message édité par Elmoricq le 17-06-2009 à 22:58:42
Reply

Marsh Posté le 15-06-2009 à 16:15:36   

Reply

Marsh Posté le 17-06-2009 à 22:56:00    

C'est super de mettre ses mots de passe sur Internet. Tu peux me donner le numéro de ta carte bleue et son code confidentiel ? Tu serais gentil. :D


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 17-06-2009 à 22:58:48    

Modifié. :o

Reply

Marsh Posté le 24-06-2009 à 16:00:35    

C'est du lan. Impossible d'accéder a cet équipement depuis l'extérieur. :o
Bref pas de réponse a pars ça?

Reply

Marsh Posté le 26-06-2009 à 12:42:30    

trouve toi un module php pour faire du expect

Reply

Marsh Posté le 29-06-2009 à 14:45:15    

C'est surement pas du code tres propre mais bon ca peut en aider quelque uns...  

Code :
  1. /**************************************/
  2. $login = "isadmin";
  3. $output ="";
  4. $mdp = "password";
  5. $target = 'x.x.x.x'; //IP Address
  6. $port = '23'; //port, 23 for telnet
  7. /**************************************/
  8.  $fp = fsockopen($target, $port); // socket creation
  9.  if(!$fp) {
  10.   echo 'Telnet connexion to '.$target.'failed'; //if connexion fails
  11.  }
  12.  else {
  13.   // login
  14.   fputs($fp,$login."\r\n" );
  15.   sleep(1);
  16.   //password
  17.   fputs($fp,$mdp."\r\n" );
  18.   sleep(1);
  19.   fputs($fp,$command);   
  20.   sleep(5);
  21.   $output.=fread($fp,2000);
  22.   echo $output;
  23.   //logout
  24.   fputs($fp,$close."\r" );
  25.   fclose($fp);
  26.  }

Reply

Sujets relatifs:

Leave a Replay

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