如果有人不能:什麼是telnet foo.com 80的perl等價物?
echo | telnet foo.com 657
話,怎麼可能做它用Perl一樣嗎?只是爲了測試,如果一個端口是打開或沒有。
UPDATE:
perl -e 'system("echo | telnet foo.com 657")'
是不好的,因爲它仍然給出了 「No environment-specified terminal type.」。 +更新端口
如果有人不能:什麼是telnet foo.com 80的perl等價物?
echo | telnet foo.com 657
話,怎麼可能做它用Perl一樣嗎?只是爲了測試,如果一個端口是打開或沒有。
UPDATE:
perl -e 'system("echo | telnet foo.com 657")'
是不好的,因爲它仍然給出了 「No environment-specified terminal type.」。 +更新端口
大多數使用telnet的人並不想使用telnet協議。這只是通過socket發送數據的一種便捷方式。
考慮到您使用了端口80,您可能實際上需要發出HTTP請求。你可以使用LWP::UserAgent。
要實際說出TELNET協議,您可以使用Net::Telnet。但這不是你想要的。
然而,僅僅檢查一個遠程主機是活的,你可以使用Net::Ping它通過各種協議,包括80端口的TCP
只是做一個基本的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: $!";
當然,你可以使用Net :: Telnet來設置爲遠程側的終端類型。
在Net:Telnet文檔中有一個例子。
'system(「echo | telnet foo.com 80」)'? –