Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Редирект по Ip (https://forum.antichat.xyz/showthread.php?t=70974)

InfernoNet 20.05.2008 23:06

Редирект по Ip
 
У меня есть сайт и он доступен в локальной сети и в глобальной сети.
Нужен скрипт, который будет перенаправлять пользователей из локальной сети (192.168.* и 10.*) на одну страницу, а пользователей из интернета на другую страницу.
Так как прописывать все Ip инетовские не возможно, то можно написать скрипт, чтоб Ip адреса с диапазаном 192.168.* и 10.* перенаправлялись на одну страницу, а все остальные Ip на другую.
Кому не сложно выложите скрипт.

blackybr 20.05.2008 23:12

.htaccess ?

Код:

RewriteEngine on
RewriteCond %{REMOTE_HOST} 192\.168
RewriteRule \.php$ http://www.site.ru/ [R=301,L]


d_x 20.05.2008 23:12

PHP?

PHP код:

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


InfernoNet 20.05.2008 23:20

blackybr, по поводу .htaccess сам знал, нужно именно на php было.
d_x, спасибо.

GreenBear 20.05.2008 23:23

Цитата:

if(strpos($ip,'192.168')===0 || strpos($ip,'10.')===0)
200.200.192.168
200.200.10.10

d_x 20.05.2008 23:29

Цитата:

Цитата:
if(strpos($ip,'192.168')===0 || strpos($ip,'10.')===0)


200.200.192.168
200.200.10.10
Не сработает, я всё правильно сделал.

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

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

Кстати, strpos - самый быстрый способ, быстрее регулярок и substr.

GreenBear 20.05.2008 23:38

я думаю что надо делать
PHP код:

preg_match('/^(192\.168|10\.).*/'$ip); 


GreenBear 20.05.2008 23:44

на счет быстроты и оптимизации - не стоит варить яйца там, где их надо жарить.

Isis 20.05.2008 23:46

PHP код:

<?php
$ip 
$_SERVER['REMOTE_ADDR'];
if(
substr($ip08) == '192.168.' || substr($ip03) == '10.')
{
      
header('Location: localnetwork.php');
}
else
{
      
header('Location: globalnetwork.php');
}
?>



Время: 13:20