Антиддос сохранение логов

Discussion in 'PHP' started by A_n_d_r_e_i, 27 Mar 2011.

  1. A_n_d_r_e_i

    A_n_d_r_e_i Active Member

    Joined:
    2 Sep 2009
    Messages:
    175
    Likes Received:
    250
    Reputations:
    27
    Это из модуля антиддос
    PHP:
    function ad_WiteIP($dir){ 
       
    $f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w'); 
       
    fclose($f); 
    }
    PHP:
    <?php 
          ad_WiteIP
    ($ad_DirName);   // Перед выходом записываем ip 
          
    exit; 
       }else{ 
          
    ad_WiteIP($ad_DirName); 
       } 

    ?>
    Как сделать чтоб запись производилась в текстовый файл, каждый ип с новой строки?

    Сам скрипт
     
    #1 A_n_d_r_e_i, 27 Mar 2011
    Last edited: 27 Mar 2011
    1 person likes this.
  2. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Поменяй так:
    PHP:
    function ad_WiteIP($dir){
       
    $f=fopen('ip.txt''a');
       
    fwrite($f$_SERVER['REMOTE_ADDR']."\r\n";
       
    fclose($f);
    }
    На файл ip.txt права 777.
    ____________________________________
    Если надо что б повторов IP не было, напиши, зделаю. Но тогда скрипт будет грузить сервер и превратиться из антиDDoSного в DDoSный. :)
    А так советую Переписать скрипт под MySQL,ботет работать быстрее, не грузить сервер из без повторов. Если надо, обращайся, сделаю :)
     
    #2 randman, 27 Mar 2011
    Last edited: 27 Mar 2011
  3. A_n_d_r_e_i

    A_n_d_r_e_i Active Member

    Joined:
    2 Sep 2009
    Messages:
    175
    Likes Received:
    250
    Reputations:
    27
    PHP:
     function ad_WiteIP($dir){ 
       
    $f=fopen('ip.txt''w'); 
       
    fwrite($f$_SERVER['REMOTE_ADDR']."\r\n");
       
    fclose($f); 
    }
    во, теперь нету ошибки
     
    #3 A_n_d_r_e_i, 27 Mar 2011
    Last edited: 27 Mar 2011
  4. A_n_d_r_e_i

    A_n_d_r_e_i Active Member

    Joined:
    2 Sep 2009
    Messages:
    175
    Likes Received:
    250
    Reputations:
    27
    теперь ошибка "Ошибка 503" торчит постоянно
     
  5. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Для записи каждого IP м новой строки надо указать атрибут A.

    Атрибут W предназначен для записи. Указатель текущей позиции устанавливается в начало файла, а все содержимое файла уничтожается. Если файл не существует, функция пытается создать его.

    А атрибут A предназначен для другой записи. Указатель текущей позиции устанавливается в конец файла. Если файл не существует, функция пытается создать его

    Так что работать будет такой код:

    PHP:
     function ad_WiteIP($dir){ 
       
    $f=fopen('ip.txt''a'); 
       
    fwrite($f$_SERVER['REMOTE_ADDR']."\r\n");
       
    fclose($f); 
    }
    Про запись советую почитать здесь: http://i-vd.org.ru/books/php/files.shtml
    Потому что скрипт не предназначен для записи IP в один файл. Он и не будет работать, если только так:

    PHP:
     function ad_WiteIP($dir){ 
       
    $f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w'); 
       
    fclose($f); 
       
    $f2=fopen('ip2.txt''a'); 
       
    fwrite($f2$_SERVER['REMOTE_ADDR']."\r\n");
       
    fclose($f2); 
    }   
    Советую переписать скрипт под MySQL, если надо, я могу переписать.
     
    #5 randman, 27 Mar 2011
    Last edited: 27 Mar 2011
    1 person likes this.