ФорумПрограммированиеPHP для идиотов → бан по ip

бан по ip

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 октября 2010 г. 5:52, спустя 3 минуты 55 секунд


    file - вытаскивает все из файла в массив
    fopen - открывает фаил

    да


    $f = fopen(ban.txt,"r");
    $b = file("ban.txt")


    так?

    нет
    Спустя 35 сек.
    прочитайте внимательнее что такое [man]file[/man] и посмотрите там примеры
    adw/0
  • Grever

    Сообщения: 65 Репутация: N Группа: Кто попало

    Spritz 9 октября 2010 г. 6:35, спустя 43 минуты 24 секунды

    посмотрел, вроде все как там
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 9 октября 2010 г. 6:51, спустя 15 минут 29 секунд

     <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $bans = file("ban.txt");

    foreach ($bans AS $ban)
    if ($ban == $ip)
    die('Бан');
    else
    echo 'Нет бана';

  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 9 октября 2010 г. 7:32, спустя 41 минуту 37 секунд

    только вот смысл банить прокси сервер? ))
  • Grever

    Сообщения: 65 Репутация: N Группа: Кто попало

    Spritz 9 октября 2010 г. 7:36, спустя 3 минуты 48 секунд


     <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $bans = file("ban.txt");

    foreach ($bans AS $ban)
    if ($ban == $ip)
    die('Бан');
    else
    echo 'Нет бана';




     <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $bans = file("ban.txt");

    foreach ($bans AS $ban)
    if ($ban == $ip)
    die('Бан');
    else
    echo 'Нет бана';




    он выводит 2 формы , как закрыть foreach если нету бана?
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 9 октября 2010 г. 7:39, спустя 3 минуты 3 секунды

    Grever, ппц.
    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $bans = file("ban.txt");
    foreach ($bans AS $ban) {
       if ($ban == $ip) {
           die('Бан');
        }
    }
    //твоя форма
  • Grever

    Сообщения: 65 Репутация: N Группа: Кто попало

    Spritz 9 октября 2010 г. 7:44, спустя 5 минут 4 секунды


    Grever, ппц.
    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    $bans = file("ban.txt");
    foreach ($bans AS $ban) {
       if ($ban == $ip) {
           die('Бан');
        }
    }
    //твоя форма



    вот не получается, он первый ip пропускает а второму ip пишет бан =\
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 октября 2010 г. 7:47, спустя 2 минуты 19 секунд

    замените

    foreach ($bans AS $ban) {


    на

    foreach ($bans AS $ban) {
    var_dump($ban, $ip); echo "<br>\n";


    что выводится?
    adw/0
  • Grever

    Сообщения: 65 Репутация: N Группа: Кто попало

    Spritz 9 октября 2010 г. 7:50, спустя 3 минуты 36 секунд

    var_dump($ban, $ip); echo "<br>\n";

    string(11) "10.3.5.61 " string(11) "10.67.221" string(13) "10.2.67.221 " string(11) "10.2.67.221" string(11) "10.6.128.23" string(11) "10.2.67.221"
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 9 октября 2010 г. 8:10, спустя 20 минут 15 секунд

    Кстити возможно быстрее будет читать через fgets фиксивованно записанные изначально блоки и ипами, чем прочитать весь файл в массив, но я не уверен, хотя памяти сэкономиться немного
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 октября 2010 г. 8:13, спустя 2 минуты 18 секунд

    и вас "забанило"? я смотрю там ваш ип под вторым номером
    adw/0
  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты

    Spritz 9 октября 2010 г. 8:18, спустя 5 минут 7 секунд

    Кстити возможно быстрее будет читать через fgets фиксивованно записанные изначально блоки и ипами, чем прочитать весь файл в массив, но я не уверен, хотя памяти сэкономиться немного


    Быстрее будет засунуть в базу и хранить как UInt + индекс (ip + ban) и select count(*)

    и вас "забанило"? я смотрю там ваш ип под вторым номером


    А как он теперь сможет править код - если его забанило
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 9 октября 2010 г. 8:28, спустя 10 минут 32 секунды

    Быстрее будет засунуть в базу и хранить как UInt + индекс (ip + ban) и select count(*)

    неужели?
  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты

    Spritz 9 октября 2010 г. 8:31, спустя 2 минуты 19 секунд

    неужели?


    я хз нашел в гугле скопировал вставил, не то?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 октября 2010 г. 8:34, спустя 2 минуты 53 секунды

    arvitaly, нравишься ты мне своим чувством юмора :)
    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!