faq обучение настройка
Текущее время: Вт июн 04, 2024 23:08

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Победили телнет в 2108 :)
СообщениеДобавлено: Чт ноя 17, 2005 17:08 
Не в сети

Зарегистрирован: Пт окт 21, 2005 07:39
Сообщений: 375
Откуда: Екатеринбург
#!/usr/bin/perl

use Net::Telnet;

my ($line);
my $hostname = "ip";
my $passwd = "пароль";
my $home = "путь для логов";

$sw = new Net::Telnet (Timeout => 5, Prompt => '/DES-2108:>/');
$sw->dump_log($home."/dump_log");
$sw->input_log($home."/input_log");
$sw->errmode("return");

$sw->open($hostname);

$error=0;
$sw->waitfor('/password:/i') or die "Switch no Answer! ".$hostname;
$sw->print($passwd);

$sw->cmd('sh sw');
@line = $sw->waitfor('/:>$/i') or die $sw->lastline;
$sw->cmd('logout');
$sw->close;
print @line;
exit;


теперь можно собирать скриптами fdb :) Прошивка должна быть beta 11. Берется в техподдержке D-Link легко.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт ноя 17, 2005 18:41 
Не в сети

Зарегистрирован: Ср апр 20, 2005 16:15
Сообщений: 119
Откуда: Rostov on Don
Я пробовал так делать, работает через раз.
Лично у меня стабильно работает только когда при вводе пароля делаешь паузу по секунде (меньше не пробовал). Вот ответ из тех поддержки, который навел меня на эту мысль:

Цитата:
Please send "one character" to DES-2110 for password for each
time (i.e. "a", "d", "m", "i", "n") not "admin", because our
DES-2110 telnet function is simple


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн ноя 21, 2005 10:00 
Не в сети

Зарегистрирован: Ср апр 20, 2005 16:15
Сообщений: 119
Откуда: Rostov on Don
По просьбам трудящихся:

Код:
use Expect;

sub des2108_login {
   my $device = shift@_;
   my $debug = shift@_;
   
   my $exp = new Expect;
   my $ok = 1;

   my $login = "blank";
   my $passwd = "admin";

   $exp = Expect->spawn("telnet $device");
   $exp->log_user(0);

   if ($debug) { $exp->log_user(1); }

   $exp->expect(1,
      [ qr/word: / => sub {
         my $exp=shift;
         sleep(1);
         for (my $i=0; $i<length($passwd); $i++) {
            my $char = substr($passwd, $i, 1);
            $exp->send($char);
            sleep(1);
         }
         $exp->send("\r");
         exp_continue; }
      ],
      [ qr/refused|Unable|closed|Invalid/ => sub {
         $ok = 0; }
      ]
   );
   if ($ok) {
      $exp->expect(1,">");
      $exp->clear_accum();
      return $exp;
   } else {
      return undef;
   }
}

sub des2108_exit {
   my $exp =  shift @_;
   $exp->send("logout\n");
   $exp->soft_close();
   return 1;
}


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт ноя 22, 2005 18:19 
Не в сети

Зарегистрирован: Пт окт 21, 2005 07:39
Сообщений: 375
Откуда: Екатеринбург
Спасибо за скрипт


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB