Newsgroup: it.comp.www.php
Titolo: telnet session su linux

Come posso creare uno script con php che entra in telnet su un pc linux!!!
Avete un esempio esplicativo ????
Grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Avete un esempio esplicativo ????
define ("IP_ADDR", "192.168.1.1");
define ("PORT", 23);
define ("PWD", "pwd");
$fp = fsockopen (IP_ADDR, PORT, $errno, $errstr, 30);
        if(!$fp){
           echo "$errstr ($errno)<br>\n";
        }
        else
           echo("Connected.. to " . IP_ADDR);
           fputs($fp, PWD . "\n");
            do
              {
                   $icount++;
                   $buffer = fgets($fp,128);
                   echo($buffer);
               }
            while ($buffer!=".\r\n");
Per chiarimenti:
http://it3.php.net/manual/it/function.fsockopen.php
http://it3.php.net/manual/it/function.fputs.php
http://it3.php.net/manual/it/function.fgets.php
Gusher.

 Avete un esempio esplicativo ????
define ("IP_ADDR", "192.168.1.1");
define ("PORT", 23);
define ("PWD", "pwd");
$fp = fsockopen (IP_ADDR, PORT, $errno, $errstr, 30);
        if(!$fp){
           echo "$errstr ($errno)<br>\n";
        }
        else
           echo("Connected.. to " . IP_ADDR);
           fputs($fp, PWD . "\n");
            do
              {


Non funziona, se per esempio ho questi dati e mi devo connettere da un pc
windows ad un pc linux (in cui è presente un server telnet) con questi
dati:
host:192.168.1.1
utente: pippo
password: prova
Cosa devo fare??? Scusa ma sono ancora all'inizio e per lavoro mi serve
assolutamente fare uno script del genere. Poi per dare i comandi (es. ps
aux) vedo quale funzione utilizzare.
ciao


 aux) vedo quale funzione utilizzare.
Ripeto:
Tutto quello che ti serve lo trovi sui link che ho postato.
Gusher.

Questo č lo script, ma rimane lě in attesa:
[supporto@SPTUX ]$ php prova.php
X-Powered-By: PHP/4.0.6
Content-type: text/html
Ho letto diversi script presenti negli esempi, ma non ho visto un esempio
chiaro. Come gli passo il nome utente ??? E come mai in php non c'č un
modulo telnet ed un modulo per il ping come negli altri linguaggi (python
o ruby). Non ci hanno ancora pensato ???
<?
define ("IP_ADDR", "192.168.100.1");
define ("PORT", 23);
define ("PWD", "prova");
$fp = fsockopen (IP_ADDR, PORT, $errno, $errstr, 30);
if(!$fp){
echo "$errstr ($errno)<br>\n";
}
else
echo("Connected.. to " . IP_ADDR);
fputs($fp, PWD . "\n");
do
{
$buffer = fgets($fp,128);
echo($buffer);
}
while ($buffer!=".\r\n");
?>


>Come gli passo il nome utente ???
Hai guardato il link?
http://it3.php.net/manual/it/function.fputs.php
Gusher.


posto il codice:
<?
class Telnet {
/* (c) 
th...@thieso.net
 */
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";
}
}
}
}
$prompt="prompt$ ";
$tn = new telnet("indirizzo_ip",23);
echo $tn-> read_till("ogin:");
echo $tn-> write("user\r\n");
echo $tn-> read_till("assword:");
echo $tn-> write("password\r\n");
echo $tn-> read_till($prompt);
echo $tn-> write("ps\r\n");
echo $tn-> read_till($prompt);
echo $tn-> close();
?>
ciao
-- 
punkarruso

potresti provare a eseguire uno script expect (estensione tcl) richiamandolo
da php con exec per poi leggerne l'output per valutare se il tutto è stato
eseguito correttamente. Secondo me è l'unico modo.
expect---> 
http://expect.nist.gov/