Salve a tutti,
Fatte le vacanze?
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.
attualmente avviene la connessione in ssh "lo vedo dai log del router, ma non invia i dati.
spero di trovare una soluzione con voi
Vi ringrazio fin da ora per la disponibilità.
Saluti.
Il codice che uso è il seguente:
<?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 ; //qui setto il tempo della connessione
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 ;
}
}
}
}
?>