Re: [PHP] Re: php telnet

2001-12-20 Thread Thies C. Arntzen


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]


[PHP] Re: php telnet

2001-12-19 Thread Chris Lee

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]