Мне нужна помощь в сети: Telnet. Попытка подключения к терминалу VT-100. При использовании обычного telnet с консоли он отлично работает. Я могу подключать и выдавать команды, но когда я пытаюсь сделать то же самое с perl, он подключается, но потом ничего не происходит - у меня нет выхода или ожидания только для тайм-аутов или показов, которые не совпадают с приглашением (но это его, потому что его всегда три буквы и > знак). I'v пробовал все возможные способы -> используя такие методы, как print, cmd, put, но без каких-либо успехов и застрял в течение 2 дней на этом.Проблема с Perl с linux @ Net :: терминал Telnet и vt-100
Вот мой пример кода:
use Net::Telnet();
my $conn = new Net::Telnet (TelnetMode => 0);
unless ($conn->open(Host => $host, Port => 23))
{
die "Error opening socket:: ".$conn->errmsg();
}
print "Connected to ".$conn->host().", port ".$conn->port()."\n";
$conn->prompt('/...>/'); # prompt is 014>
my $lines = $conn->put("15\r"); # command 15 to give me the site name
my ($a,$b);
($a,$b) = $conn->waitfor(Match=>'/...>/',Timeout=>100);
$conn->close;
Когда неправильная команда вводится, как правило, телнет сообщение об ошибке отображается и проворная, но из Perl он ничего не делает. журнал ввода пуст, журнал выход пуст и журнал дамп содержит только следующие:
0x00000: 31 35 0d 0a 15 ..
Я не знаю, что еще попробовать.
Вот как выглядит нормальный выход телнет сессии:
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
014>15
15
014 TMR Name
014>^]
telnet> quit
Connection closed.
Любая помощь приветствуется
Могу ли я предложить не использовать 'Net :: Telnet' - есть много слабых сторон вокруг обычного текстового протокола, такого как telnet, и именно поэтому он отключен по умолчанию на большинстве серверов в наши дни. – Sobrique
Какую библиотеку вы тогда рекомендовали бы использовать вместо этого? – Yarex
Это был скорее вопрос «не использовать telnet». – Sobrique