【发布时间】:2011-04-04 14:08:51
【问题描述】:
有没有办法让 perl 启动一个 telnet 会话并以编程方式向该 telnet 会话发出命令?
我最初尝试了一个愚蠢的方法:
commands.pl:
sleep(1);
print $command1;
sleep(1);
print $command2;
然后
> perl commands.pl | telnet www.host.com port
这不起作用。
【问题讨论】:
有没有办法让 perl 启动一个 telnet 会话并以编程方式向该 telnet 会话发出命令?
我最初尝试了一个愚蠢的方法:
commands.pl:
sleep(1);
print $command1;
sleep(1);
print $command2;
然后
> perl commands.pl | telnet www.host.com port
这不起作用。
【问题讨论】:
有一个Net::Telnet 模块。
use Net::Telnet ();
$t = new Net::Telnet (Timeout => 10,
Prompt => '/bash\$ $/');
$t->open("sparky");
$t->login($username, $passwd);
@lines = $t->cmd("who");
print @lines;
(取自该页面的示例。)
【讨论】:
一种选择是通过Perl's interface to Expect。
【讨论】: