如果有人不能:
echo | telnet foo.com 657
然后它怎么能用perl做同样的事情?只是为了测试,如果端口是否打开。
更新:
perl -e 'system("echo | telnet foo.com 657")'
不好,因为它仍然提供“No environment-specified terminal type.”。 +更新的端口
答案 0 :(得分:3)
要实际讲TELNET协议,您可以使用Net::Telnet。但这不是你想要的。
但是,要检查远程主机是否处于活动状态,您可以使用Net::Ping通过各种协议提供测试,包括端口80上的TCP。
答案 1 :(得分:2)
大多数使用telnet的人实际上并不想使用telnet协议。这只是通过socket发送数据的便捷方式。
鉴于您使用了端口80,您实际上可能希望发出HTTP请求。您可以使用LWP::UserAgent。
答案 2 :(得分:1)
要做一个基本的套接字连接,请使用套接字。
他们的第一个例子:
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文档。