php effettuare una connessione ssh o telnet ed inviare dei comandi

genny71s

Nuovo Utente
12 Ago 2011
8
0
0
Salve a tutti,

sono ancora a chiedere un'aiuto.
Ho la necessità di inviare dei dati ad un router,
ad esempio:
" add user $user pwd $password $ip "

in pratica io ho dei dati che estraggo "visualizzo" in una pagina,
da questa pagina dovrei poi con un pulsante effettuare una connessione ssh a $IP "router" ed inviare del testo unito a dati provenienti dal db e disconnessione.

Vi ringrazio fin da ora per la disponibilità.
Saluti.
 
ecco il codice di esempio

Ciao, e grazie per la risposta.
Ho trovato questo esempio dal manuale di php ma ho diversi problemini.....
il primo è che non invia niente al router,
ed il secondo è che dovrei inserire un pulsante
per l'inserimento del pulsante ho pensato di richiamare poi la funzione $connection con il pulsante, giusto?
in realtà avrei bisogno anche di mettere dei controlli, tipo terminale in "echo" ed eventuali controlli errori.
Potreste darmi una mano?
grazie buona giornata


PHP:
<?php
//qui inserisco i dati per la connessione
$ip = 'il mio ip' ;
$user = 'user' ;
$pass = 'password' ;

//effettua la connessione
$connection = ssh2_connect ( $ip );
ssh2_auth_password ( $connection , $user , $pass );
$shell = ssh2_shell ( $connection , "bash" );

//Trick is in the start and end echos which can be executed in both *nix and windows systems.

$cmd = "echo '[start]';ip hotspot user add nome=daniele password=daniele profile=uprof1 server=hotspot1 disabled=no;echo '[end]'" ;
$output = user_exec ( $shell , $cmd );

fclose ( $shell );

function user_exec ( $shell , $cmd ) {
fwrite ( $shell , $cmd . "\n" );
$output = "" ;
$start = false ;
$start_time = time ();
$max_time = 2 ; //time in seconds
while((( time ()- $start_time ) < $max_time )) {
$line = fgets ( $shell );
if(! strstr ( $line , $cmd )) {
if( preg_match ( '/\[start\]/' , $line )) {
$start = true ;
}elseif( preg_match ( '/\[end\]/' , $line )) {
return $output ;
}elseif( $start ){
$output [] = $line ;
}
}
}
}

?>
 
effettua la connessione ma non invia la stringa

Riecomi, scusatemi.
Allora, ho risolto i problemi di connessione "riguardava i permessi"nel senso che adesso la pagina effettua la connessione
e la disonnessione ma non manda la stringa di configurazione.
In realtà penso di aver capito che il comando

"function user_exec ( $shell , $cmd )"
serve per windows, io sto lavorando su machina Ubuntu-Linux
Grazie per l'aiuto
 
Ultima modifica:

Discussioni simili