the attached file implements a minimal telnet client and is
free to use.
re,
tc
On Wed, Dec 19, 2001 at 02:16:36PM -0800, Chris Lee wrote:
if I nc to my server on port 23 I get the same thing. ie there is nothing
wrong. your going to have to emulate the telnet protocal now, thats just the
connect string.
--
Chris Lee
[EMAIL PROTECTED]
Kancha [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...
The following code generated garbase output. what is wrong ??
?php
$sp = fsockopen(localhost, 23);
if(!$sp){
echo error;
exit;
}
socket_set_blocking($sp, FALSE);
function getLine(){
global $sp;
$op = fgets($sp, 1024);
while(empty($op)){
$op = fgets($sp, 1024);
}
return $op;
}
echo getLine();
?
The output was as follows:
[root@ispms html]# php telnet.php
X-Powered-By: PHP/4.1.0
Content-type: text/html
ÿý?ÿý ÿý#ÿý'[root@ispms html]#
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]
?
error_reporting(-1);
class Telnet {
// [EMAIL PROTECTED] 2001
var $sock = NULL;
function telnet($host,$port) {
$this-sock = fsockopen($host,$port);
socket_set_timeout($this-sock,2,0);
}
function close() {
if ($this-sock)
fclose($this-sock);
$this-sock = NULL;
}
function write($buffer) {
$buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
fwrite($this-sock,$buffer);
}
function getc() {
return fgetc($this-sock);
}
function read_till($what) {
$buf = '';
while (1) {
$IAC = chr(255);
$DONT = chr(254);
$DO = chr(253);
$WONT = chr(252);
$WILL = chr(251);
$theNULL = chr(0);
$c = $this-getc();
if ($c === false)
return $buf;
if ($c == $theNULL) {
continue;
}
if ($c == \021) {
continue;
}
if ($c != $IAC) {
$buf .= $c;
if ($what ==
(substr($buf,strlen($buf)-strlen($what {
return $buf;
} else {
continue;
}
}
$c = $this-getc();
if ($c == $IAC) {
$buf .= $c;
} else if (($c == $DO) || ($c == $DONT)) {
$opt = $this-getc();
// echo we wont .ord($opt).\n;
fwrite($this-sock,$IAC.$WONT.$opt);
} elseif (($c == $WILL) || ($c == $WONT)) {
$opt = $this-getc();
// echo we dont .ord($opt).\n;
fwrite($this-sock,$IAC.$DONT.$opt);
} else {
// echo where are we? c=.ord($c).\n;
}
}
}
}
$tn = new telnet(192.168.255.100,23);
echo $tn-read_till(ogin: );
$tn-write(admin\r\n);
echo $tn-read_till(word: );
$tn-write(thieso\r\n);
echo $tn-read_till(: );
$tn-write(ps\r\n);
echo $tn-read_till(: );
echo $tn-close();
?
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]