0

我使用 Perl Net::telnet 连接到我的路由器并更改了一些选项,但我收到此错误:

模式匹配超时

每件事都是真实的(用户,通行证,模式等),我为这个错误的来源而疯狂。我的代码是:

use Net::Telnet;
$telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
$telnet->open('192.168.1.1');
$telnet->waitfor('/login[: ]$/i');
$telnet->print('admin');
$telnet->waitfor('/password[: ]$/i');
$telnet->print('admin');
$telnet->waitfor('/\$ $/i' );
$telnet->print('list');
$output = $telnet->waitfor('/\$ $/i');
print $output;

我现在该怎么办?有没有替代方法?谢谢

4

1 回答 1

0

也许尝试使用Net::Telnet页面顶部的示例登录?

use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10, Errmode=>'die');
$t->open($host);
$t->login($username, $passwd);
@lines = $t->cmd("who");
print @lines;

这似乎对我有用。当您的代码片段在第一次waitfor尝试登录时超时。

于 2013-08-22T22:34:25.593 回答