Stuntman | 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 :
- /**************************************/
- $target = '10.11.10.93'; //remote IP
- $user = 'isadmin'; //login
- $pass = 'Elmoricq-edit : on va eviter le password en clair, hein'; //password
- $port = '23'; //port, 23 for telnet
- /**************************************/
- // is form submitted ?
- if (isset($_POST['input'])) {
- $num = $_POST['line_num'];
- if ($_POST['xDSL']=="VDSL" ){
- $data = "info configure bridge port 1/1/9/{$num} flat /r/n info xdsl line 1/1/9/{$num}\r\n";
- }
- else{
- $data = "help \r\n";
- }
- $fp = fsockopen($target, $port); // socket creation
- if(!$fp) {
- echo 'Telnet connexion to '.$target.'failed'; //if connexion fails
- }
- else {
- $buffer = fgets($fp,6);
- if ($buffer=="login:" ){
- fwrite($fp,$user."\r\n" );
- }
- $buffer = fgets($fp,9);
- if ($buffer=="password:" ){
- fwrite($fp,$user."\r\n" );
- }
- }
- $i=0;
- stream_set_timeout($fp, 0, 2500); // delay in microseconds
- echo '<textarea rows="2" cols="20">';
- while ($i<300) {//number of lines to read
- $i++;
- $line = fgets($fp, 2048);
- echo $line.'
- ';
- }
- echo '</textarea>';
- }
- else{...}
|
Message édité par Elmoricq le 17-06-2009 à 22:58:42
|