【问题标题】:Perl script fails to open port number on modem failsPerl 脚本无法在调制解调器上打开端口号失败
【发布时间】:2016-06-07 22:08:47
【问题描述】:

我有一个 perl 脚本可以远程登录到特定的 IP 和端口号。但是,如果我在建立连接后打印结果,则端口号为 23(默认)。因此,调制解调器不鼓励从脚本触发的 at 命令。

以下是我的脚本。请指教。

脚本:

#!/usr/bin/perl -w
use lib ("/u/dclement/lib/perl");
use Net::Telnet ();

$HOSTNAME = "192.168.xx.xx";
$HOSTPORT = "9998";

$conn = new Net::Telnet (Timeout => "1");

$conn->binmode(1);              # don't translate CRLF
$conn->errmode("return");       # enable error trapping
$conn->telnetmode(0);           # turn off telnet mode
$conn->dump_log("LOGFILE");     # output log file filehandle
$conn->output_record_separator("");

print "CONNECTING TO $HOSTNAME and $HOSTPORT\n";
# open connection to host $HOSTNAME and port $HOSTPORT
# and die if there is a problem
unless ($conn->open(Host => $HOSTNAME, Port => $HOSTPORT))
{
    die "Error opening socket:: ".$conn->errmsg();
}
print "CONNECTED TO ".$conn->host().", PORT ".$conn->port()."\n";

输出

CONNECTING TO 192.168.xx.xx and 9998
CONNECTED TO 192.168.xx.xx, PORT 23

【问题讨论】:

  • 你可以手动试试,还是用浏览器试试?似乎您的默认端口(23)已被删除-也许您想要的端口由于某种原因不可用?很高兴首先知道您是否可以通过任何方式到达那里。代码对我来说似乎很好。
  • 我会尝试的事情:1)在构造函数中设置你可以做的一切; 2)删除您实际上不需要的任何选项; 3) 尝试删除“telnetmode”?
  • telnet 192.168.xx.xx 9998 有效。它甚至不需要密码。
  • 请注意,如果 telnet 协议在该端口上不可用,telnet 命令会断开到原始连接。我猜在 9998 上运行的服务器不是 telnet 服务器,您应该使用 IO::Socket::INET 而不是 Net::Telnet
  • 我很确定该端口支持 telnet。 Telnet IP PortNo 有效,我可以手动输入 AT 命令。

标签: perl telnet


【解决方案1】:

你可以试试下面的代码,看看9998端口是否有任何连接问题:

$telnetOutput =telnet 192.168.xx.xx 9998; print "\n telnet command output1: $telnetOutput \n"; $telnetOutput =telnet 192.168.xx.xx 23; print "\n telnet command output2: $telnetOutput \n";

【讨论】:

  • 上述脚本出错。请指教。未加引号的字符串“telnet”可能与 fix_sms_cmd_mgr.pl 第 9 行的未来保留字发生冲突。在 fix_sms_cmd_mgr.pl 第 9 行,“telnet 192.168.xx.xx”附近的操作员预期的位置找到编号(您需要预先声明 telnet 吗?)跨度>
  • 无需预先声明。你必须把它放在反引号中它会起作用。只是谷歌如何在 perl 中使用反引号。它有助于使用 perl 脚本在系统上运行命令并存储输出。
猜你喜欢
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-04
  • 1970-01-01
  • 2014-10-25
  • 2017-03-27
相关资源
最近更新 更多