Редирект по Ip

Discussion in 'PHP' started by InfernoNet, 20 May 2008.

  1. InfernoNet

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

    Joined:
    7 Nov 2007
    Messages:
    248
    Likes Received:
    228
    Reputations:
    -20
    У меня есть сайт и он доступен в локальной сети и в глобальной сети.
    Нужен скрипт, который будет перенаправлять пользователей из локальной сети (192.168.* и 10.*) на одну страницу, а пользователей из интернета на другую страницу.
    Так как прописывать все Ip инетовские не возможно, то можно написать скрипт, чтоб Ip адреса с диапазаном 192.168.* и 10.* перенаправлялись на одну страницу, а все остальные Ip на другую.
    Кому не сложно выложите скрипт.
     
  2. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    .htaccess ?

    Code:
    RewriteEngine on 
    RewriteCond %{REMOTE_HOST} 192\.168
    RewriteRule \.php$ http://www.site.ru/ [R=301,L] 
    
     
    1 person likes this.
  3. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    PHP?

    PHP:
    <?php
    $ip
    =$_SERVER['REMOTE_ADDR'];
    if(
    strpos($ip,'192.168')===|| strpos($ip,'10.')===0)
      
    header("Location: страница_для_локалки");
    else
      
    header("Location: страница_для_остальных");
    ?>
     
    1 person likes this.
  4. InfernoNet

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

    Joined:
    7 Nov 2007
    Messages:
    248
    Likes Received:
    228
    Reputations:
    -20
    blackybr, по поводу .htaccess сам знал, нужно именно на php было.
    d_x, спасибо.
     
  5. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    200.200.192.168
    200.200.10.10
     
  6. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Не сработает, я всё правильно сделал.

    strpos('200.200.192.168','192.168')!=0 ни в коем случае, оно равно 8.

    Если же подстрока '192.168' или '10.' вообще не будут найдены в $ip, то strpos вернёт false, но и это учтено тройным сравнением с нулём.

    Кстати, strpos - самый быстрый способ, быстрее регулярок и substr.
     
    #6 d_x, 20 May 2008
    Last edited: 20 May 2008
    1 person likes this.
  7. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    я думаю что надо делать
    PHP:
    preg_match('/^(192\.168|10\.).*/'$ip);
     
    #7 GreenBear, 20 May 2008
    Last edited: 20 May 2008
    1 person likes this.
  8. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,548
    Likes Received:
    1,397
    Reputations:
    612
    на счет быстроты и оптимизации - не стоит варить яйца там, где их надо жарить.
     
    1 person likes this.
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    PHP:
    <?php
    $ip 
    $_SERVER['REMOTE_ADDR'];
    if(
    substr($ip08) == '192.168.' || substr($ip03) == '10.')
    {
          
    header('Location: localnetwork.php');
    }
    else
    {
          
    header('Location: globalnetwork.php');
    }
    ?>
     
    5 people like this.