我需要Net:Telnet的帮助。尝试连接到VT-100终端。从控制台使用正常的telnet时,它工作正常。我可以连接和发布命令,但是当我尝试从perl中得到相同的结果时,它会连接,但之后没有任何反应 - 我没有输出或等待超时或显示提示符不匹配(但它是它的,因为它总是三个字母和>符号)。 我尝试了所有可能的方法 - >使用print,cmd,put等方法,但没有任何成功,并在该事情上停留了2天。linux @ Net :: Telnet和vt-100终端的Perl问题
这里是我的示例代码:
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;
当输入错误的命令,正常的telnet显示错误消息和提示,但在Perl它什么都不做。 输入日志为空,输出日志是空的,转储日志包含以下只:
0x00000:31 35 0D 0A 15 ..
我不知道什么尝试。
这里是如何看起来正常的telnet会话输出:
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.
任何帮助表示赞赏
2015-02-10
Yarex
+0
我可以建议不要使用'Net :: Telnet' - 围绕纯文本协议(如telnet)存在很多弱点,这就是为什么现在大多数服务器在默认情况下都会禁用它。 –
2015-02-10 19:13:07
+0
然后你会推荐使用什么库? –
2015-02-12 06:42:38
+0
这是更多的“不使用telnet”的问题 –
2015-02-12 07:50:07