我想提取所有IP地址的關閉此網站:http://www.game-monitor.com/如何使用Perl正則表達式提取多行代碼?
我想正則表達式的IP在該網頁上,提取所有這些,在屏幕上顯示出來。
這是我到目前爲止,你能告訴我什麼是錯誤的,並幫助我嗎?
#!/usr/bin/perl
use HTTP::Request;
use LWP::UserAgent;
print 'Press [1] To Begin: ';
chomp ($begin = <STDIN>);
my $url = 'http://www.game-monitor.com/';
my @ips = ('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}','\d{1,3}\.\d{1,2}\.\d{1,3}\.\d{1,2}','\d{1,2} \.\d{1,3}\.\d{1,2}\.\d{1,3}','\d{1,2}\.\d{1,2}\.\d{1,2}\.\d{1,3}','\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,2}','\d{1,3}\.\d{1,3}\.\d{1,2}\.\d{1,2}','\d{1,2}\.\d{1,2}\.\d{1,3}\.\d{1,3}','\d{1,2}\.\d{1,2}\.\d{1,2}\.\d{1,2}','\d{1,2}\.\d{1,3}\.\d{1,3}\.\d{1,2}','\d{1,3}\.\d{1,2}\.\d{1,2}\.\d{1,3}');
if ($begin eq 1)
{
my $request = HTTP::Request->new(GET => $url);
my $useragent = LWP::UserAgent->new();
my $response = $useragent->request($request);
my $result = $response->content;
foreach $ip (@ips)
{
if ($result =~ /($ips[0])/ ||
$result =~ /($ips[1])/ ||
$result =~ /($ips[2])/ ||
$result =~ /($ips[3])/ ||
$result =~ /($ips[4])/ ||
$result =~ /($ips[5])/ ||
$result =~ /($ips[6])/ ||
$result =~ /($ips[7])/ ||
$result =~ /($ips[8])/ ||
$result =~ /($ips[9])/
)
{
print "IP: $1 \n";
print "IP: $2 \n";
print "IP: $3 \n";
print "IP: $4 \n";
print "IP: $5 \n";
print "IP: $6 \n";
print "IP: $7 \n";
print "IP: $8 \n";
print "IP: $9 \n";
print "IP: $10 \n";
}
}
}
你有什麼問題?你遇到了什麼錯誤? – 2011-05-25 07:31:40