Значение Telnet для моего Mikrotik не отображается с использованием php?

Я получаю ссылку из Manual PHP и Telnet To sisco, чтобы получить значение от моего микротика. ниже — из Manual PHP, а если код из Telnet To sisco, значение равно то же самое, но код отличия.

<?php
    set_time_limit(0); 
    $host   = '10.23.45.1';
    $port   = '23';
    $user   = 'edp';
    $pass   = '123';
    $socket = fsockopen($host, $port) or die('Could not connect to: '.$host);
    $userdota = "palma";
    if($socket) 
    { 
        sendcmd($user." \r\n",$socket);
        sendcmd($pass."  \r\n",$socket);
        sendcmd("tool bandwidth-test 10.23.35.41 protocol=tcp direction=both user=adminstrator pass=intel \r\n",$socket);
        $line=fgets($socket);
        echo $line;
    }

    function sendcmd($cmd,$socket) // send command function
    {
      fputs($socket, $cmd, strlen($cmd)); 
    }
?>

Я хочу получить значение, как я использую с командной строкой, как это

            status: running
          duration: 6s
        tx-current: 509.6kbps   tx-10-second-average: 277.9kbps
  tx-total-average: 277.9kbps
        rx-current: 971.2kbps   rx-10-second-average: 566.7kbps
  rx-total-average: 566.7kbps
       random-data: no
         direction: both

Но когда я запускаю код, значение $line равно

ÿýÿý ÿý#ÿý

Не похоже на то, что я хочу. Можете ли вы дать мне решение?


person AKCode    schedule 20.03.2014    source источник
comment
Я предполагаю, что вы отправляете команды слишком быстро - почему бы вам не использовать класс, который Buksy предоставил в поток, на который вы ссылались?   -  person h2ooooooo    schedule 20.03.2014
comment
@h2oooooooo, я пробовал этот код, но значения всегда такие, как указано выше :'(.   -  person AKCode    schedule 20.03.2014