我无法在 Perl 中使用 Socket 赢得横幅
I can't win the banner with Socket in Perl
我正在尝试连接到服务器并获得横幅,但我没有成功。
我的脚本运行理论上如下:
获取端口和 IP,但我可以在变量上使用静态 IP 端口。
执行套接字,超时7
如果连接
等待响应 e 使用句柄 <> 获取横幅
执行打印以显示横幅。
use IO::Socket::INET
$myip = <stdin>; # $myip is the remote IP to connect
chomp($myip);
$myport = <stdin>; # $myport is the remote port to connect
chomp($myport);
# This part of data entry tends to use IP and URL frames, but it doesn't work either.
$sock=IO::Socket::INET‐>new("$myip:$myport");
if($sock){
$remote=IO::Socket::INET‐>new(
Proto=>"tcp",
PeerAddr=>$myip,
PeerPort=>$myport,
Timeout=>"7"
);
$line=<$remote>;
print $line;
}
当我运行代码时,连接被执行,但我没有获得横幅。
我找不到此代码中的错误。
我在其他网站上寻找解决方案,但找不到。
总是相同的例子,它们不会改变。
http 协议在发送任何回复之前需要来自客户端的请求。
使用您的 HTTP 服务器的 IP 地址尝试以下代码片段。
#!/usr/bin/env perl
#
# vim: ai ts=4 sw=4
use strict;
use warnings;
use IO::Socket::INET;
my $ip = '192.186.1.120';
my $port = '80';
my $sock = IO::Socket::INET->new("$ip:$port");
print $sock "GET / HTTP/1.0\n\n";
print while <$sock>;
参考:
HTTP flow
我正在尝试连接到服务器并获得横幅,但我没有成功。
我的脚本运行理论上如下:
获取端口和 IP,但我可以在变量上使用静态 IP 端口。
执行套接字,超时7
如果连接
等待响应 e 使用句柄 <> 获取横幅
执行打印以显示横幅。
use IO::Socket::INET
$myip = <stdin>; # $myip is the remote IP to connect
chomp($myip);
$myport = <stdin>; # $myport is the remote port to connect
chomp($myport);
# This part of data entry tends to use IP and URL frames, but it doesn't work either.
$sock=IO::Socket::INET‐>new("$myip:$myport");
if($sock){
$remote=IO::Socket::INET‐>new(
Proto=>"tcp",
PeerAddr=>$myip,
PeerPort=>$myport,
Timeout=>"7"
);
$line=<$remote>;
print $line;
}
当我运行代码时,连接被执行,但我没有获得横幅。 我找不到此代码中的错误。 我在其他网站上寻找解决方案,但找不到。 总是相同的例子,它们不会改变。
http 协议在发送任何回复之前需要来自客户端的请求。
使用您的 HTTP 服务器的 IP 地址尝试以下代码片段。
#!/usr/bin/env perl
#
# vim: ai ts=4 sw=4
use strict;
use warnings;
use IO::Socket::INET;
my $ip = '192.186.1.120';
my $port = '80';
my $sock = IO::Socket::INET->new("$ip:$port");
print $sock "GET / HTTP/1.0\n\n";
print while <$sock>;
参考: HTTP flow