tags:

views:

3601

answers:

3

I need to write a PHP script to telnet to a router, run a command and fetch the results. does anyone know a telnet connection library in PHP?

+1  A: 

this is what you might need:

http://cvs.adfinis.ch/co.php/phpStreamcast/telnet.class.php?Horde=c999ccb49c17f45e8dd6e86fd037cf7d&r=1.2

John Boker
There is some example code in the comments of the php manual, too: us.php.net/fsockopen#46369
soulmerge
A: 
<?php

$file = 'somefile.txt';
$remote_file = 'readme.txt';
// set up basic connection
$ftp_server = '127.0.0.1';
$ftp_user_name = 'Till';
$ftp_user_pass = 'Kcp05';
$conn_id = ftp_connect($ftp_server);
// login with username and password
ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// upload a file
ftp_nb_put($conn_id, $remote_file, $file, FTP_ASCII);
// close the connection
echo "$file sent to $ftp_server as $remote_file\n<br/>";
ftp_close($conn_id);


// finished copying the input.dat to the till now, just need to execute the print command.
// That will copy somefile.txt in the same folder as this .php file to the ftp server root dir.


$header1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).chr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).chr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB).chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC).chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).chr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33).chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0).chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54).chr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0);

$fp=pfsockopen("127.0.0.1",23);

echo "Telnet session opening ...";

sleep(4);

fputs($fp,$header1); 
sleep(4); 

fputs($fp,"Till\r");
sleep(2); 
fputs($fp,"Kcp05\r"); 

sleep(2);
fputs($fp,"notepad\r"); 

sleep(3);

echo "Telnet session closing ...";

fclose($fp);

?> 

that worked for me. the first part will upload the ftp file to the server, and the second part will lo onto the telnet server, and execute a program that can use the file you just uploaded by ftp. tested it just now.

A: 

using sleep(some seconds) in the code doesn't look so pretty for a good connection, perhaps only 1 second needed but for a bad connection, this required delay may be more (like in the code above)

does guys know how to make a practical "sleep" function for this delaying? like waiting for the fputs to be completely sent, or somewhat

paolo