telnet foo.com 80的perl等价物是什么



如果有人不能:

echo | telnet foo.com 657

那么它怎么能用perl做同样的事情呢?只是为了测试端口是否打开。

更新:

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

不好,因为它仍然给出"无环境指定的终端类型"。+更新的端口

要真正使用TELNET协议,可以使用Net::TELNET。但这并不是你真正想要的。

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

以这种方式使用telnet的大多数人实际上并不想使用telnet协议。这只是通过套接字发送数据的一种方便方式。

假设您指导了端口80,您可能实际上想要放置一个HTTP请求。您可以为此使用LWP::UserAgent。

要进行基本的套接字连接,请使用套接字。

perldoc插座

他们的第一个例子:

 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: $!";

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

Net:TTelnet文档中有一个示例。

最新更新