+ -
当前位置:首页 → 问答吧 → perl telnet服务器问题

perl telnet服务器问题

时间:2010-12-31

来源:互联网

Perl code
#!c:/Perl

use Net::Telnet;

print "\nUsage: get_alarm.pl remote_host_ip port User_Name Password \n\n";

my $remote_host_ip = $ARGV[0]; 
my $port = $ARGV[1] ;
my $username = $ARGV[2] ;
my $password = $ARGV[3] ;
my $recv_file_name = $ARGV[4] ;

my $first_cmd ="cd /var/log/report";
my $second_cmd = "ps -ef|grep -v grep|grep tail|awk '{print $2}'|xargs kill -9";
my $third_cmd = "tail -f Alarm.log";


print "ip:$remote_host_ip\n";
print "port:$port\n";
print "name:$username\n";
print "passwd:$password\n";

my $telnet_hd=new Net::Telnet (Timeout => 60);
print "now telnet......\n";
#$telnet_hd->open("$remote_host_ip");
$telnet_hd->open(Host=>$remote_host_ip,Port=>$port);
print "now open ......\n";
$telnet_hd->login(Name=>$username,Password=>$password);
print "now login......\n";

执行以上脚本的时候 有的用户可以telenet 有的不可以 
perl get_alarm.pl 192.168.1.1 23 nrmdal nrmdal  

ip:192.168.1.1
port:23
name:nrmdal
passwd:nrmdal
now telnet......
now open ......
timed-out waiting for command prompt at get_alarm.pl line 28
nrmdb用户纠正常 谁知道咋回事啊??????????
perl get_alarm.pl 192.168.1.1 23 nrmdb nrmdb

ip:192.168.1.1
port:23
name:nrmdb
passwd:nrmdb
now telnet......
now open ......
now login......
first cmd is cd /var/log/report
send first cmd  

作者: villainm   发布时间: 2010-12-31

不同的telnet服务返回的信息不一样,所以,一段telnet程序可能不能自动登录,人工干预可以登录。若要实现自动登陆,必须了解所要登录的telnet的返回信息,才能知道,何时发送登录名及密码。

作者: fibbery   发布时间: 2010-12-31