0
   #!/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 属性に渡して、不正なホスト名エラーが発生しないようにする方法です。

前もって感謝します

4

1 に答える 1

0

からホストを読み込むと<HOSTLIST>、各行 (最後の行を除く) の末尾にドメイン名に属さない改行が含まれるため、chomp重要なことを実行する前に関数で明示的に削除する必要があります。

于 2013-03-21T03:46:28.953 に答える