#!/usr/bin/perl
use LWP::Simple;
use warnings;
$content = 0;
$find = "webvis.edgesuite.net";
open (HOSTLIST,"lists.hosts");
@hosts = <HOSTLIST>;
foreach $host(@hosts) {
$results = `nslookup www.$host`;
my $pos = index($results, $find);
if ($pos > -1 )
{
my $url = "http://www.$host";
$content = get ($url);
print $content;
my $pos1 = index($content, $url);
if($pos1 > -1) {
print "Content Match\n";
} else {
print "No Content Match\n";
}
$count++;
chomp ($host);
print "$count www.$host\n";
}
}
close (HOSTLIST);
exit($errorcode);
使用上面的代码,我总是收到以下错误:
IO :: Socket :: INET:错误的主机名'www.test.com
如果将$ url更改为:
$url = 'http://www.test.com';
我从页面中获取内容。
所以我的问题是我如何将字符串变量传递给get属性,因此它不会产生 错误的主机名错误?
提前谢谢
答案 0 :(得分:0)
当您从<HOSTLIST>
读入主机时,每一行(可能是最后一行)在其末尾都会有一个不属于域名的换行符,因此必须明确删除chomp
在尝试做任何重要的事情之前都会发挥作用。