我目前有一些代码可以返回网站标题内容:
#!/usr/bin/perl
use strict;
require IO::Socket;
my @header;
my $host = shift;
my $socket = new IO::Socket::INET(
PeerAddr => $host,
PeerPort => 80,
Proto => 'tcp') || die "Could not Connect $!\n";
print "Connected.\n";
print "Getting Header\n";
print $socket "GET / HTTP/1.0\n\n";
my $i = 0;
while (<$socket>) {
@header[$i] = $_;
$i++;
}
$i = 0;
print "--------------------------------------\n";
while ($i <= 8) {
print "@header[$i++]";
}
print "-------------------------------------\n";
print "Finished $host\n";
我想做的是能够从打开的文件中读取(FILE,'&lt;',shift);然后文件中的每个IP都传入一个头部检索循环,这使我无法一个接一个地手动执行。
我的意思是在每行上都有一个包含(例子ips):1.1.1.1 2.2.2.2的文件,然后通过get头函数解析所有这些文件。
答案 0 :(得分:1)
替换
my @header;
my $host = shift;
...
与
while (<>) {
chomp( my $host = $_ );
my @header;
...
}
答案 1 :(得分:1)
您只需打开文件,将内容读入列表,然后遍历列表:
open my $fh, '<', $file or die "$!";
my @ips = <$fh>;
close $fh;
foreach my $ip ( @ips ) {
chomp $ip;
...
}