Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xocollate

Conexão SSH com PHP

Recommended Posts

Já insere pessoal.

 

<?php

$server = '192.168.0.3';
$username = 'admin';
$password = '';

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1'
);

$connection = ssh2_connect($server, 22, $methods);
ssh2_auth_password($connection, $username, $password);
$shell = ssh2_shell($connection);

$comando = '/ip hotspot user add name=zaza password=zaza';

$stream = ssh2_exec($connection, $comando);

Só falta o resto.. lol :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, já consigo listar, mas a listagem sai-me da seguinte maneira

 

Flags: X - disabled, D - dynamic
# SERVER NAME ADDRESS PROFILE UPTIME
0 admin default 0s
1 user1 default 0s 

Será possivel eu só listar o id e o name?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja consigo sacar o id, atraves da função explode..

queria era tirar as duas primeiras linhas.. acho que é possível.

 

while($linha = fgets($stderr_stream)) { 
	flush();	
	
	$texto[$i] = $linha;
        $i++;	

Assim consigo obter a linha e eliminar as duas primeiras?

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilize função explode() + PHP_EOL

 

 

$rs = explode( PHP_EOL, $str );
// $rs se tornará um vetor, cujos valores são cada uma das linhas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas,

É assim não estou a conseguir obter resultados.

O que eu quero é mediante o seguinte resultado, excluir as duas primeiras linhas, e chamar nas restantes somente o valor do ID e do Name

 

Flags: X - disabled, D - dynamic
# SERVER NAME ADDRESS PROFILE UPTIME
0 admin default 0s
1 user1 default 0s

codigo

$stdout_stream = ssh2_exec($connection, "/ip hotspot user print");
sleep(1);
$stderr_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);

echo "<table cellspacing='2' cellpadding='2' border='1' align='center'>";

while($line = fgets($stderr_stream)) { 
	flush();
	
	$linha  = explode(PHP_EOL, $line );		
}

while($line = fgets($stdout_stream)) { 
	flush(); 	
	
	$linha = explode(PHP_EOL, $line);	
		
	echo "<tr><td>".$linha[0]."</td>";
	echo "<td>".$linha[1]."</td>";
	echo "<td><a href='?pagina=utilizadores-apaga.php&id=".$linha[0]."'><img src='imagens/del.png' border='0'></a></td></tr>";
	
}

echo "</table>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não houver solução por aqui, se calhar se na listagem gravássemos para um ficheiro, depois já se conseguia fazer a leitura. não?

 

PS: estou assim um pouco preocupado, porque amanhã de manhã tenho que ter este trabalho feito. e só me falta isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites


$stdout_stream = ssh2_exec($connection, "/ip hotspot user print");

sleep(1);

$stderr_stream = ssh2_fetch_stream($stdout_stream, SSH2_STREAM_STDERR);

 

echo "<table cellspacing='2' cellpadding='2' border='1' align='center'>";

 

$c = 1;

while($line = fgets($stdout_stream)) {

flush();

if( $c > 2 ){

$linha = explode(' ', $line);

 

echo "<tr><td>".$linha[0]."</td>";

echo "<td>".$linha[1]."</td>";

echo "<td><a href='?pagina=utilizadores-apaga.php&id=".$linha[0]."'><img src='imagens/del.png' border='0'></a></td></tr>";

}

$c++

}

 

echo "</table>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá o seguinte erro

Notice: Undefined offset: 1 in C:\Apache\htdocs\utilizadores.php on line 47

linha 47

echo "<td>".$linha[1]."</td>";

De qualquer das formas, já não lista as duas primeiras linhas.

Lista o ID do utilizador, mas não lista o nome.

 

Obrigado pela disponibilidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

está quase lá..

 

faça um debug e veja o que está havendo..

 

exemplo de debug

print_r( $linha ); exit;

echo "<tr><td>".$linha[0]."</td>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.