Perl
- 1 ответ
 - 0 вопросов
 
    0
    Вклад в тег
    
      
      
    
  
  
#!/usr/bin/env perl6
#определим октет как \d{1,3}
my $o = /<digit> ** 1..3/; 
#определим IP как 4 октета, разделенных точкой
my $ipdef = /$o '.' $o '.' $o '.' $o/;
#объявим хэщ
my %ip_list;
#заполним его IP-шниками
%ip_list{$_ ~~ $ipdef}++ if /$ipdef/ for 'log.txt'.IO.lines;
#выведем на экран, сортировав по убыванию частоты айпи в логе, флудеры сверху
.say for %ip_list.sort: { $^b.value cmp $^a.value };
#а вот так по возрастанию
#  .say for %ip_list.sort: *.value;143.56.71.195 => 5
54.214.23.199 => 1
54.224.44.192 => 1
185.49.11.195 => 1