The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Perl: добить скрипт....Как получить вывод?, !*! weldpua2008, 13-Апр-07, 03:08  [смотреть все]
Привет ВСЕМ
Вот скрипт:

#!/usr/local/bin/perl

$hostname="127.0.0.1";
$port="5005";
if( $ARGV[4] eq '' ) { die 'Usage:  user nasip userip nasport'; };

$framedip=$ARGV[0];
$user=$ARGV[1];
$nasip=$ARGV[2];
$userip=$ARGV[3];
$nasport=$ARGV[4];
$nasport=$nasport+1;
use Net::Telnet ();
$t = new Net::Telnet ;
$t->open(Host    => $hostname,
         Port    => $port,
         Timeout => 10);
$t->waitfor('/Username:.*$/');
$t->print("mpd");
$t->waitfor('/Password:.*$/');
$t->print("PASSW");
$t->print("bundle pptp1");
Дальше надо выполнить команду и с выводом поработать...
$t->print("show summary");

Как Мне получить вывод?
И потом выполнить ввод еще команд?

Вот подключение по телнет:
telnet 127.0.0.1 5005
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Multi-link PPP daemon for FreeBSD

Username: mpd
Password:

Welcome!
Mpd pid 1481, version 4.1 (root@server 21:06 24-Feb-2007)
[pptp1] bundle pptp1
[pptp1] CONSOLE: mpd: bundle pptp1
[pptp1] show summary
[pptp1] CONSOLE: mpd: show summary
Current daemon status summary
Iface   Bund    Link    Device  Iface   LCP     Device  User            From
ng1     pptp1   pptp1   pptp    Down    Initial DOWN                    UNSPEC
ng2     pptp2   pptp2   pptp    Down    Initial DOWN                    UNSPEC
ng3     pptp3   pptp3   pptp    Down    Initial DOWN                    UNSPEC
..........................тут повторение.........................
ng398   pptp398 pptp398 pptp    Down    Initial DOWN                    UNSPEC
ng399   pptp399 pptp399 pptp    Down    Initial DOWN                    UNSPEC
ng400   pptp400 pptp400 pptp    Down    Initial DOWN                    UNSPEC
[pptp1]

Когда [pptpХХХ] можно вводить команды

Заранее Спасибо

  • Perl: добить скрипт....Как получить вывод?, !*! NuINu, 09:39 , 13-Апр-07 (1)
    >Привет ВСЕМ
    >Вот скрипт:

    Испльзуй
    @result = $t->cmd("show summary")

    • Perl: добить скрипт....Как получить вывод?, !*! weldpua2008, 00:46 , 14-Апр-07 (2)
      >>Привет ВСЕМ
      >>Вот скрипт:
      >
      >Испльзуй
      >@result = $t->cmd("show summary")
      command timed-out at ./mpd_kill2.pl line 40 - это эта строка...


      • Perl: добить скрипт....Как получить вывод?, !*! NuINu, 22:10 , 14-Апр-07 (3)
        >>>Привет ВСЕМ
        >>>Вот скрипт:
        >>
        >>Испльзуй
        >>@result = $t->cmd("show summary")
        >command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
        Ну вот видишь, уже кое что работает :-)
        Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает твой клиент, надо узнать что за промпт она выдает и сказать клиенту что нужно ждать именно его.

        • Perl: добить скрипт....Как получить вывод?, !*! weldpua2008, 00:41 , 16-Апр-07 (4)
          >>>>Привет ВСЕМ
          >>>>Вот скрипт:
          >>>
          >>>Испльзуй
          >>>@result = $t->cmd("show summary")
          >>command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
          >Ну вот видишь, уже кое что работает :-)
          >Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает
          >твой клиент, надо узнать что за промпт она выдает и сказать
          >клиенту что нужно ждать именно его.

          Эм...Вопрос - Как?

          • Perl: добить скрипт....Как получить вывод?, !*! NuINu, 10:00 , 17-Апр-07 (5)
            >>>>>Привет ВСЕМ
            >>>>>Вот скрипт:
            >>>>
            >>>>Испльзуй
            >>>>@result = $t->cmd("show summary")
            >>>command timed-out at ./mpd_kill2.pl line 40 - это эта строка...
            >>Ну вот видишь, уже кое что работает :-)
            >>Вообщем в конце выполнения команды удаленная система не выдает промпт, который ожидает
            >>твой клиент, надо узнать что за промпт она выдает и сказать
            >>клиенту что нужно ждать именно его.
            >
            >Эм...Вопрос - Как?

            да как хочешь, можно так:
            $t->put($my_cmd);
            $ok = $t->waitfor("/$you_prompt/i");
            if($ok) {

            }
            А можно так:
            $t = new Net::Telnet (Timeout => 10, Prompt => '/bash\$ $/');
            $t->open("sparky");
            $t->login($username, $passwd);

            @lines = $t->cmd($my_cmd, Prompt =>$you_prompt);

            Вообще изучи умную команду: perldoc Net::Telnet




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру