telnet foo.com 80的perl等价物是多少?

时间:2013-11-27 19:05:03

标签: perl

如果有人不能:

echo | telnet foo.com 657

然后它怎么能用perl做同样的事情?只是为了测试,如果端口是否打开。

更新:

perl -e 'system("echo | telnet foo.com 657")'

不好,因为它仍然提供“No environment-specified terminal type.”。 +更新的端口

4 个答案:

答案 0 :(得分:3)

要实际讲TELNET协议,您可以使用Net::Telnet。但这不是你想要的。

但是,要检查远程主机是否处于活动状态,您可以使用Net::Ping通过各种协议提供测试,包括端口80上的TCP。

答案 1 :(得分:2)

大多数使用telnet的人实际上并不想使用telnet协议。这只是通过socket发送数据的便捷方式。

鉴于您使用了端口80,您实际上可能希望发出HTTP请求。您可以使用LWP::UserAgent

答案 2 :(得分:1)

要做一个基本的套接字连接,请使用套接字。

perldoc socket

他们的第一个例子:

 use Socket qw(PF_INET SOCK_STREAM pack_sockaddr_in inet_aton);
 socket(my $socket, PF_INET, SOCK_STREAM, 0)
     or die "socket: $!";
 connect($socket, pack_sockaddr_in(80, inet_aton("localhost")))
     or die "connect: $!";

答案 3 :(得分:0)

当然,您可以使用Net :: Telnet设置远程端的终端类型。

Net中有一个例子:Telnet文档。