2017-10-05 32 views
0

으로 변경하는 방법 시스코 라우터에서이 "show version"명령에 문제가 있습니다. 다음 화면으로 가려면 a를 눌러야합니다. "- 더보기 -"가 표시되면 키를 누릅니다. 코드를 따라phpseclib ssh2 pty telnet cisco - "show version"을

function showVersion($ssh, $ansi){ 
    $ssh->enablePTY(); 
    $ssh->write("show version\n"); 
    //$ssh->exec("show version"); 

    $prompt_saida = ""; 

    $ssh->setTimeout(3); 
    $prompt_temp = $ssh->read('#--More--|\[>\]#', NET_SSH2_READ_REGEX); 
    $prompt_saida = $prompt_temp; 

    $ssh->setTimeout(3); 
    while($prompt_temp = $ssh->read('#--More--|\[>\]#', NET_SSH2_READ_REGEX)){ 
     $ssh->setTimeout(3); 
     $prompt_saida.= $ssh->read(NET_SSH2_READ_REGEX); 
       if (!preg_match('#--More--$#', $prompt)) {    break;   } 
     $ssh->write(' '); 
     $ssh->setTimeout(3); 
    } 
    return $prompt_saida; 
    //$ssh->write("terminal length 0\n"); 
    //$ssh->write("\n"); 

    $ssh->setTimeout(3); 
    //$ssh->read(); 
    //$ssh->getLog(); 
    $ansi->appendString($ssh->read()); 

} 

마지막 로그인 : 수요일 10월 4일 15시 41분 46초 2017 인증 된 사용자에 xx.xx.xxx.xxx

제한된 액세스로부터. [xxxxxxxxxx [xxx @ [34; 1mPRA-xxxxxxxx [xxxx] [xxx

인증 완료!

"라우터 구성을 NVRAM에 저장하지 말고 변경을 다시 정리하십시오!"

xxxxx_xxxx_xx> 쇼 버전 bash는 : 쇼 : 명령을 찾을 수 없습니다 [XXXXXXXXXX [XXX의 @ [(34) 1mPRA-XXXXXXXX [XXXX> [XXX $ssh->exec("show version");

마지막 로그인과

: 수요일 10월 4일 (15) : 41 : 46 2017 from xx.xx.xxx.xxx

인증 된 사용자에 대한 액세스가 제한됩니다. [xxxxxxxxxx [xxx @ [34; 1mPRA-xxxxxxxx [xxxx] [xxx

인증 완료!

"라우터 구성을 NVRAM에 저장하지 말고 변경을 다시 정리하십시오!"

xxxxx_xxxx_xx>/빈/bash는 : 쇼 : 명령 당신이 날 도움이 될

를 찾을 수 없습니다? 나는 매우 감사 할거야!

또한 화면의 라우터 로그 보여줄 수있는 가장 좋은 방법을 알고 싶습니다 :

$ssh->read(); 
$ssh->read(NET_SSH2_READ_REGEX); 
$ssh->getLog(); 
$ansi->getScreen(); 

가 감사를

답변

0

나는 키 때 "를 눌러 다음 화면으로 진행합니다 - 더보기 - "가 나타납니다.

코드는 "- 더 알아보기"- "- 더보기 -가 아닙니다"를 찾고 있습니다. 아마 그것이 당신이 의미 한 것입니까?

또한 $prompt_saida.= $ssh->read(NET_SSH2_READ_REGEX);입니다. 어쩌면 $prompt_saida.= $ssh->read();을 시도해보십시오. 이므로 NET_SSH2_READ_REGEX가 표시하는 define('NET_SSH2_READ_REGEX', 2);에 의해 정의가 break이 발생할 수 있으므로 2가 조기에 호출되는 동일하지 --More--을 수행하기 때문에 당신은 기본적으로 (숫자 2를 기다리고 있습니다.

xxxxx_xxxx_xx을 >/bin/bash : show : command not found

PuTTY 나 OpenSSH와 같은 SSH 클라이언트를 사용해도 실제로 "show version"을 할 수 있는지 궁금합니다. 그렇지 않다면이 문제는 phpseclib와는 아무런 관련이 없으며, 당신을 도울 수있는 Cisco IOS (?) 전문가로부터 당신을 혼란 케 할 가능성이 있습니다. PHP 코드.

나는 또한 화면의 라우터 로그 보여줄 수있는 가장 좋은 방법 알고 싶습니다 : 나는 이전에 언급 한 바와 같이 그, 당신은 최선을 정의하는 방법에 따라 달라집니다하지만 것 같아요

$ssh->read(NET_SSH2_READ_REGEX)하지 않습니다 당신이 생각하는 것처럼 행동하십시오. $ssh->read('#pattern#', NET_SSH2_READ_REGEX)은하지 만 $ssh->read(NET_SSH2_READ_REGEX)은 아닙니다.

$ssh->getLog() 로깅을 사용하도록 설정 한 경우에만 수행됩니다 (예 : define('NET_SSH2_LOGGING', 2)). 또한 키 교환에서 채널 열기에 이르기까지 암호화되지 않은 SSH 패킷을 보여줍니다. 이것은 아마도 당신이 원하는 것이 아닙니다.

$ansi->getScreen()의 경우 출력에 ANSI 코드가 마음에 들지 않으면 작동 할 수 있습니다. 그리고 당신은 어떤 것을 가지고 있습니다. 예. [xxxxxxxxxx[[email protected][34;1mPRA-xxxxxxxx[xxxx> - 그 @[34;1m 비트는 ANSI입니다.

$ansi->getHistory()으로 놀아 볼 가치가있을 수도 있습니다.