我正在尝试废弃列出的IP地址的apache状态页面,例如apache status page。
<tr><td><b>0-35</b></td><td>1791</td><td>1/1079/387615</td><td>G
</td><td>5541.08</td><td>379</td><td>557</td><td>135.0</td><td>33.04</td><td>20992.04
</td><td>83.60.245.1</td><td nowrap></td><td nowrap></td></tr>
我已下载页面
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use feature 'say';
use File::Slurp;
my $content = get('http://www.apache.org/server-status') or die 'Unable to get page';
write_file('filename',$content);
如何创建找到的IP地址数组?
谢谢
答案 0 :(得分:4)
我使用CPAN上提供的use Regexp::Common qw /net/;
while ($content =~ m!<td>($RE{net}{IPv4})</td>!g) {
print "IP: $1\n";
}
(Documentation)模块,如下所示:
onPrepare
答案 1 :(得分:3)
只需找到以点分隔的1-3位数组的所有条目,然后验证每个条目在0-255范围内。
while ($content =~ /(?<!\d)(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?!\d)/g) {
if (
$1 >= 0 && $1 <= 255 &&
$2 >= 0 && $2 <= 255 &&
$3 >= 0 && $3 <= 255 &&
$4 >= 0 && $4 <= 255
) {
print "$1.$2.$3.$4\n";
}
}
答案 2 :(得分:1)