Как реализовать бан по подсети?

Discussion in 'PHP' started by Дикс, 13 Oct 2006.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    Можете в общих чертах рассказать как организуется бан по подсети? Это бан айпи адресов в каких-то диапазонах?
    И если да, то как лучше такие диапазоны сохранять в базу?
    очень помог бы какой-нить тутор на эту тему :)
     
  2. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    2 способа есть.
    Конвертить IP в int число и там далее все просто вообще =))) если хоть чуть чуть математику в школе учил.
    Или парсить ip на точках, получаем 4 tinyint числа (mysql формат) и их уже пишем в БД в 4 различные поля
     
    _________________________
  3. EXSlim

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

    Joined:
    9 Oct 2006
    Messages:
    73
    Likes Received:
    20
    Reputations:
    18
    кодил по-быстрому =) возможны ошибки

    PHP:
    // Диапазон(заносится в базу)
    $start=ip2long("10.100.100.1");   
    $stop=ip2long("10.100.100.100"); 

    $curr=ip2long($REMOTE_ADDR);  // или более безопасная ф-ция определения IP  

    $sql "SELECT start,stop FROM `ban` WHERE $curr>=start AND $curr<=stop";
    //start и stop предварительные данные типа int(12) 

    $ans=mysql_num_rows(mysql_query($sql));  

    if (
    $ans!=0) die("banned");
    Примитивно, но основа есть...
     
    #3 EXSlim, 13 Oct 2006
    Last edited: 13 Oct 2006
  4. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    спасибо, ваши идеи понял. но мне непонятна сама суть вопроса: к примеру какой-нить нуб флудит у меня в комментах постоянно и у него айпи динамический. Как я узнаю его диапазон?
    эти пределы явно не от балды берут, когда, к примеру, меня банят по подсети и я даже с диалапа с его динамич. айпи не могу попасть на сайт.
     
  5. A110ut

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

    Joined:
    31 Dec 2005
    Messages:
    505
    Likes Received:
    263
    Reputations:
    92
    хм, ну например так ххх.ххх.*.* [:хотя ето и слишком жестоко:]
     
  6. Ambient_man

    Ambient_man New Member

    Joined:
    14 Oct 2006
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Эмс ... где то слышал про эту систему банов . Но помойму они не банят по ip.... они банят по id компьютера....

    Юзай поиск....
     
  7. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    эх.... получить бы id компьютера....
     
    _________________________
  8. Ambient_man

    Ambient_man New Member

    Joined:
    14 Oct 2006
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Ну можно же ещё и по нику забанить, по инфе профиля, по ипу ххх.ххх.ххх.*, а можно и по всему сразу ....
     
  9. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Интересный вопрос. А давайте разберем, по какой инфе можно банить и как создается этот ID, чтоб это было эффективно. Вот какие мысли уже есть:
    1. IP - эффективно, но есть лекарство - прокси, соксы и т.д., хотя рядовой флудер может и не догадаться. Недостаток: а если это IP прокси, то автоматически отсекаются и нормальные пользователи этой подсети.
    2. USER_AGENT - тоже можно получить в ПХП, но тоже может захватить и левых людей.

    Не знаю, что можно передать с JavaScript и вообще можно серваку передать локальную информацию и какую?
     
  10. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Пока не поздно, созрела схема. К примеру при входе куда-то яваскрипт собирает инфу о тебе, потом вставляет в скрытое поле и при входе отправляет все это. Такое возможно реализовать???
     
  11. steamer

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

    Joined:
    3 May 2006
    Messages:
    44
    Likes Received:
    7
    Reputations:
    1
    Вспомнил.
    3. По кукам еще можно. Эффективно, пока не удалишь.
     
  12. EXSlim

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

    Joined:
    9 Oct 2006
    Messages:
    73
    Likes Received:
    20
    Reputations:
    18
    Возможно.

    ->Узнать всё, от разрешения и глубины цвета монитора до сборки ОС и часового пояса
    ->формировать ID
    ->банить, если ID совпало

    зы. защита от идиота...т.е. не всегда надёжно=)
     
  13. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    банить по юзер_агенту - это аццкая жесть :рыдает:
    не, куки для ламеров, ну их
    про сбор яваскриптом: да мне не это надо, мне конкретно по айпи сейчас интересует
    (а, вспомнил про инфу в профиле, это чуток помягче бана по юзер агенту, но тоже достойно внимания :d)

    и звёздочка вместо одной части айпи, это гон, потому что я с диалапа сижу и у меня он постоянно разный - меняются все четыре числа!

    кто в сорцах буллетина шарит, посмотрите там, может выдрать можно и способ реализации понять?