парсер логов

Discussion in 'Болталка' started by mazaxaka, 10 Jul 2011.

  1. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    ПАрни подскажите чем логи пропарсить?
    логи в виде
    лог.тхт
    лог2.тхт
    нужно повыдерать нужные мне линки.. отчетов дохрена вручную оч долго
     
  2. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    на php можно наваять
     
  3. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    файлы на компе..
    та вот сижу кручу на перле чет нехрена не получается
     
  4. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    какая структура файлов, которые тебе нужно спарсить, и какого вида линки, которые тебе нужно выдернуть?
     
  5. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    вот такие

    и вот такие
    в смысле структура файлов?
     
  6. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    mazaxaka, хоть бы показал, что там выдирать нужно. perl или php(его скрипты так же можно в консоли запускать, как и perl).
    Если чисто линки, то
    PHP:
    #/usr/bin/perl
    use strict;
    ...
    my (@urls);
    @
    urls=$file_data =~ /<a.*href=\"(.*?)\".*>/g; 
    ------
    Пока писал, уже выложил.
     
  7. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    тебе нужно все эти строки вытащить?
    Code:
    URL: http://e.mail.ru/cgi-bin/login
    Login: betman1312
    Pwd: bujhmtkmwjd
    URL: http://passport.yandex.ru
    login: vasia_1975
    passwd: 345rty7
    URL: http://wg200.odnoklassniki.ru
    st.email: vasia_1975
    st.password: 123qwe4
    Program: Opera
    Url/Host: https://login.yahoo.com/config/login
    Login: radha1990
    Password: login
    
     
  8. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    Накатал по бырому :)
    ioffe-soft.ru/trash/Parser_strok.exe
     
  9. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    по линку нужно вытащить логин пас

    желательно на перл . его знаю норм. сам доработаю
     
  10. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    в папке logs
    лежать файлы ot4et.txt , ot4et2.txt и так порядка 20к файлов
    также в папке logs есть еще папки new и old и тд в них тоже отчеты их тоже нужно пропарсит. вот в етом и остановился в перле как пропарсить все отчеты в папке и в подпаках
     
  11. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    В названиях файлов ведь только цифры меняются ot4et.txt , ot4et2.txt ..., можно ведь занести в цикл ot4et[переменная с цифрой]... и пропарсить все файлы?
    перл не знаю, поэтому может я чего-то недопонимаю
     
    #11 Skofield, 10 Jul 2011
    Last edited: 10 Jul 2011
  12. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    названия вот такие
    report_01-07-2011_06-04-55-LDPP.txt

    некоторые просто от фонаря текстом подписаны.
     
  13. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    PHP:
    <?php
    set_time_limit
    (0);  
    function 
    file_parsing($dir)  
    {  
       global 
    $result;
       
    $file_list '';  
       if (
    $dh opendir($dir))  
       {
          
    $x 1;
          while ((
    $file readdir($dh)) !== false)  
          {  
              if (
    $file !== '.' AND $file !== '..')  
              {  
                 
    $current_file "{$dir}\\{$file}";  
                 if (
    is_file($current_file))  
                 {  
                    
    $file file_get_contents($current_file);
                    
    preg_match_all("#URL:\s.*\nLogin:\s.*\nPwd:\s.*|URL:\s.*\nlogin:\s.*\npasswd:\s.*|URL:\s.*\nst.email:\s.*\nst.password:\s.*|Url/Host:\s.*\nLogin:\s.*\nPassword:\s.*#"$file$match);
                    
    $result .= "Log $x:\n".implode(''$match[0])."\n\n";
                    
    $x++;
                 }
              }  
           }  
       }  

    $path "C:\bla-bla-bla\bla-bla\logs";//Абсолютный путь до папки     
    file_parsing($path);
    $fp fopen("result.txt""wb");//Спарсенные даные будут лежать в result.txt
    fwrite($fptrim($result));
    fclose($fp);
    ?>
    Регулярное выражение составил по идиотски, так как не пойму, что конкретно нужно парсить.
     
    #13 Skofield, 10 Jul 2011
    Last edited: 10 Jul 2011
  14. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    чтот не работает.. файл резулт создает но он пустой.
    по линку например вк. нужно вытянуть все пароли к вк. я просто показал пример в каком виде хранятся логи
     
  15. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    А как ты в перле парсить собирался, с помощью регэкспов? Если да, то покажи свое рег. выражение
     
    #15 Skofield, 10 Jul 2011
    Last edited: 10 Jul 2011
  16. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    не дружу с переносами строк поетому так
    для куска

    регулярка
    Code:
    /tut.by(.*)login:(.*)password:(.*)sid/s
    my $acc = $2;$3
     
  17. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    ну что не у кого не каких идей нету?
     
  18. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    men, zevs?
     
  19. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    PHP:
    <?php 
    set_time_limit
    (0);   
    function 
    file_parsing($dir)   
    {   
       global 
    $result
       
    $file_list '';   
       if (
    $dh opendir($dir))   
       { 
          
    $x 1
          while ((
    $file readdir($dh)) !== false)   
          {   
              if (
    $file !== '.' AND $file !== '..')   
              {   
                 
    $current_file "{$dir}\\{$file}";   
                 if (
    is_file($current_file))   
                 {   
                    
    $file file_get_contents($current_file); 
                    
    preg_match_all("#URL:.*tut.by.*\s(login:.*\spassword:.*)#"$file$match);
                    
    $result .= "tut.by log $x:\n".implode(''$match[1])."\n\n";
                    
    $x++; 
                 } 
              }   
           }   
       }   
    }  
    $path "C:\WebServers\home\localhost\www\logs";//Абсолютный путь до папки      
    file_parsing($path); 
    $fp fopen("result.txt""wb");//Спарсенные даные будут лежать в result.txt 
    fwrite($fptrim($result)); 
    fclose($fp);
    ?>
    Вот так у меня все парсит.
     
  20. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    разрые
    istaler UFR и тд

    Skofield щас попробую. в подпапках тоже ищет?