+ Responder ao Tópico



  1. #1

    Padrão Mikrotik +PHP+SSH

    olá pessoal venho aqui pedir ajuda a vcs sou novo na area de php

    estou com um codigo php ssh que acessa o mikrotik faz a consulta ao "/ppp active print" e retorna blz
    só q eu queria formatar pra ficar um trabalho melhor se alguem puder ajudar agradeço muito.
    desde já obrigado

    <?php
    include('../../ssh/Net/SSH2.php');


    $ssh = new Net_SSH2($192.168.88.1,$22);
    if (!$ssh->login($admin,$senha)) {
    $Html = "Impossivel conectar ao SERVIDOR";
    } else {

    $resultado = $ssh->exec('/ip address print detail');



    $Html = "<pre>".$resultado."</pre>";




    };
    echo $Html;


    ?>

  2. #2

    Padrão Re: Mikrotik +PHP+SSH

    Não é tão simples, voce tem que tratar a resposta (expressão regular) e a partir dai montar uma tabela com os resultados.

  3. #3

    Padrão

    Citação Postado originalmente por jnveiga Ver Post
    olá pessoal venho aqui pedir ajuda a vcs sou novo na area de php

    estou com um codigo php ssh que acessa o mikrotik faz a consulta ao "/ppp active print" e retorna blz
    só q eu queria formatar pra ficar um trabalho melhor se alguem puder ajudar agradeço muito.
    desde já obrigado

    <?php
    include('../../ssh/Net/SSH2.php');


    $ssh = new Net_SSH2($192.168.88.1,$22);
    if (!$ssh->login($admin,$senha)) {
    $Html = "Impossivel conectar ao SERVIDOR";
    } else {

    $resultado = $ssh->exec('/ip address print detail');



    $Html = "<pre>".$resultado."</pre>";




    };
    echo $Html;


    ?>



    Boa noite

    sei que é um tópico antigo, porém acredito que mais gente irá procurar num futuro próximo um sistema para monitoramento nas novas versões 6.4xx que pararam de ter suporte nas versões mais recentes para o api php mikrotik..

    então seguindo a lógica a primeira coisa a se fazer é criar um script de conexão, esse script de conexão ssh pode se usar um banco de dados anterior onde os dados do mikrotik concentrador irão ficar guardados.


    1- passo então criar um script de autenticacão ao mikrotik eu pessoalmente prefiro o php-ssh2, caso estejam usando algum servidor WEB linux debian segue o comando para instalar

    apt-get install php-ssh2


    2- após instalar vamos criar o primeiro arquivo de conexão com nome a titulo de exemplo conecta-mkt.php

    Código PHP:
    <?php

    $usuario_ssh 
    'nome-do-usuario-cadastrado-mikrotik';
    $senha_ssh 'senha-do-usuario-cadastrado-mikrotik';
    $porta_ssh 'porta-configurada-em-ip-services-ssh-na-mikrotik';
    $ip_ssh'ip-da-mikrotik';


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

           
    $connection ssh2_connect($ip_ssh$porta_ssh$methods);
           if (
    $connection) {
           echo 
    "conexao estabelecida com sucesso\n\n";
           if (
    ssh2_auth_password($connection$usuario_ssh$senha_ssh)) {
           
    sleep(2);
           
    fclose($s);
            }
            else {
            echo 
    "autenticacao Falhou\n";
            }
          
           }


    ?>


    3- após configurarmos o arquivo de conexão com a mikrotik vamos criar a página index.php onde iremos executar os nossos comandos ssh para a mikrotik e onde iremos obter as respostas..


    Código PHP:
    <?php 
            
    include_once("conecta-mkt.php");
          
            
    $s ssh2_exec($connection'/system health gauges print');
            
    stream_set_blocking($s,true);
            
    $stream_out ssh2_fetch_stream($sSSH2_STREAM_STDIO);
                
    $output1 stream_get_contents($stream_out);
            echo 
    "<tr>";
            echo 
    "<pre>{$output1}</pre>";
                    
    sleep(2);
            
    fclose($s);

                    
    $s ssh2_exec($connection'/system identity print');
            
    stream_set_blocking($s,true);
            
    $stream_out ssh2_fetch_stream($sSSH2_STREAM_STDIO);
              
    $output2 stream_get_contents($stream_out);
            echo 
    "<pre>{$output2}</pre>";
                    
    sleep(2);
            
    fclose($s);
     
                    
    $s ssh2_exec($connection'/system clock print');
            
    stream_set_blocking($s,true);
            
    $stream_out ssh2_fetch_stream($sSSH2_STREAM_STDIO);
              
    $output3 stream_get_contents($stream_out);
            echo 
    "<pre>{$output3}</pre>";
                    
    sleep(2);
            
    fclose($s);

                    
    $s ssh2_exec($connection'/system routerboard print');
            
    stream_set_blocking($s,true);
            
    $stream_out ssh2_fetch_stream($sSSH2_STREAM_STDIO);
                
    $output4 stream_get_contents($stream_out);
            echo 
    "<pre>{$output4}</pre>";
                    
    sleep(2);
            
    fclose($s);
            
            
            
    ?>

    O que a pagina acima faz PHP é em primeiro lugar verificar se tem conexão com a mikrotik usando o código (include_once("conecta-mkt.php"); ) ele vai efetuar a conexão e se tudo estiver ok ele irá executar o comando abaixo /system health gauges print.

    É feito uma formatcão na resposta usando o echo "<pre>" , onde a resposta ficara armazenada no stream_out, e o mesmo cópia a resposta para $output1 e tratamos então a leitura do $output1, $output2, $output3, $output4, resultados de cada comando como descrito na foto abaixo
    Miniaturas de Anexos Miniaturas de Anexos Clique na imagem para uma versão maior

Nome:	         testepic.png
Visualizações:	16
Tamanho: 	23,8 KB
ID:      	70518