Проверка файла (php)

Discussion in 'PHP' started by P3L3NG, 17 Jul 2008.

  1. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    Есть сайт, есть файл с IP посетителей, которым "разрешен" просмотр. Вот скрипт,блокирующий или пропускающий юзера:

    PHP:
    <?php
    $ip 
    $_SERVER['REMOTE_ADDR'];
    $fp fopen(ipsbase.txt', 'r');
    $buffer = fgets($fp);
    if (strpos($buffer,$ip) !== true) echo $buffer; //просто проверка. потом сотру

    if(strpos($ip, "ipsbase.txt") === false) echo "НЕТ ТВОЕГО IP";
    ?>
    Что-то он у меня либо всегда пропускает, либо всегда блокирует.
    Как исправить?
    Содержание ipbase.txt
    Code:
    127.0.0.1 localhost
    214.73.57.1 First
     
  2. FIND_ERROR

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

    Joined:
    30 Apr 2007
    Messages:
    70
    Likes Received:
    14
    Reputations:
    0
    хм... а может лучше зделать с помошью .htaccess ?
     
  3. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Можно проще:

    PHP:
    <?php
    $ip 
    $_SERVER["REMOTE_ADDR"];
    $ips file_get_contents("ips.txt");
    if(
    strpos($ips,$ip)) echo "Доступ разрешен";
    else die(
    "Acces denied");
    ?>
    ________________________________
    ПРЕВЕД ВЕБКИЛЛУ! :rolleyes: :rolleyes: :rolleyes:
     
  4. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    спс. ща попробую

    Что-то не работает, опять все время блокирует, независимо есть там IP или нет
     
    #4 P3L3NG, 17 Jul 2008
    Last edited: 17 Jul 2008
  5. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    Ip выводит 127.0.0.1
    Все по идее должно работать, но уже вторую ночь с этим тра*аюсь и все никак=)
     
  6. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    йа щас хостер =) я на localhost-е балуюсь...
    мне надо, чтоб если в файле был 127.0.0.1, то скрипт мну пропускал, если б не был, то слал нафиг)
     
  7. Neo.aka.Darkman

    Joined:
    20 Jun 2008
    Messages:
    15
    Likes Received:
    7
    Reputations:
    5
    P3L3NG проверь правильность имен файлов!
    А то не пойму то ли ipbase.txt, то ли ipsbase.txt.
     
  8. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    сча. может йа и прадо коряффко=)

    зы нет, все верно... :(
     
  9. system_32

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

    Joined:
    6 Jul 2006
    Messages:
    61
    Likes Received:
    94
    Reputations:
    8
    создаем фаил .htaccess

    # -FrontPage-

    Options None

    <Limit GET POST PUT DELETE>
    deny from all
    allow from ИП кого нада пускать
    </Limit>
     
    1 person likes this.
  10. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    рабтает) спс. жаль конечно что не скриптом...
    И еще вопрос:

    # -FrontPage-

    Options None

    <Limit GET POST PUT DELETE>
    deny from all
    allow from <много ip>
    </Limit>

    как их писать? черз запятую, ; или еще как?

    может и на PHP поможете дореализовать?
     
  11. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    Code:
    # -FrontPage-
    
    Options None
    
    <Limit GET POST PUT DELETE>
    deny from all
    allow from  127.0.0.1
    111.111.111.111
    333.33.3.333
    </Limit>
    так?
     
    1 person likes this.
  12. system_32

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

    Joined:
    6 Jul 2006
    Messages:
    61
    Likes Received:
    94
    Reputations:
    8
    Options None

    <Limit GET POST PUT DELETE>
    deny from all
    allow from 127.0.0.1
    allow from 111.111.111.111
    allow from 333.33.3.333
    </Limit>[/CODE]

    так
     
  13. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    все.всем спасибо, особенно System_32 & ChaaK.
     
    1 person likes this.
  14. Developer

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

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    ChaaK, ну ты простой парень :DDD

    if(strpos($ips,$ip)) - нельзя так писать... Нужно if(strpos($ips,$ip) === true), ибо strpos возращает позицию первого вхождения, влючая 0. Тобишь первый IP в списке будет слаться нах, если написать как ты, хотя он и разрешен :)
     
  15. k1b0rg

    k1b0rg Тут может быть ваша реклама.

    Joined:
    30 Jul 2005
    Messages:
    1,182
    Likes Received:
    399
    Reputations:
    479
    оно никогда не вернет true
     
  16. -=Static=-

    -=Static=- Banned

    Joined:
    12 Nov 2006
    Messages:
    201
    Likes Received:
    40
    Reputations:
    0

    Вообще пишут обычно:

    PHP:
    if(strpos($ips,$ip) !== FALSE)
    {
        
    // code
    }
     
    1 person likes this.
  17. Buffalon

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

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    В твоём коде помойму считывается одна строка/
     
  18. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    PHP:
    <?php
    $ip 
    $_SERVER['REMOTE_ADDR'];
    $ips file_get_contents("ips.txt"); 
    if(
    strpos($ips,$ip) !== FALSE) echo ""
    else die(
    "<html><head><title>IP Filter</title><br><br><br><center><b>Твоего ip
    нет в списке
    пользователей</b>"
    ); 
    ?>
    реализовал все таки на пхп...
     
  19. P3L3NG

    P3L3NG Banned

    Joined:
    4 Jun 2008
    Messages:
    175
    Likes Received:
    204
    Reputations:
    11
    А теперь еще вопросик =)
    Вот получили мы ip из перменной
    PHP:
    $ip $_SERVER['REMOTE_ADDR']; 
    допустим 127.0.0.1

    а как получить из него в новую переменную первые три группы? то есть, чтоб стало 127.0.0

    зы нужно т.к ип щас у большинства динамический и указывать в базу 255-510 адресов это ужоснах
     
  20. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Code:
    preg_replace('~(\d+\.\d+\.\d+)\.\d+~', '$1', $ip)
    или
    Code:
    substr($ip, 0, strrpos($ip, '.'))
     
    1 person likes this.