[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Определить входит ли IP в диапазон
made_in_Chuguev
Подскажите пожалуйста как мне организовать такую задачку.

У меня есть диапазон IP адресов от 10.0.1.1 до 10.0.255.255 . Как правильно прописать условие чтоб если у пользователя IP из этого диапазона его переадресовывало на одну страницу а если нет то на другую ?



Спустя 22 минуты, 19 секунд (27.11.2010 - 03:04) kirik написал(а):
Через ip2long();

Спустя 21 час, 12 минут, 15 секунд (28.11.2010 - 00:16) made_in_Chuguev написал(а):
Спасибо большое оказалось это давольно таки просто

Спустя 1 год, 5 месяцев, 8 часов, 3 минуты, 37 секунд (28.04.2012 - 07:20) Stas написал(а):
А вот скрипт который сохраняет ip одного диапазона в txt файл
тоесть у нас три компа в разных точках города и соответствено совсем разные ip требуется провести статистику смены ip трех разных деапозонов и в конце месяца просмотреть статистику

я использую такой

<?php echo $_SERVER['REMOTE_ADDR']; ?>
<br>
<?php echo (date("d.m.Y H:i:s"));?>
<br>
<?php
$fp = fopen('ip_base.txt','w+');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\r\n");
fwrite($fp, $_SERVER["HTTP_REFERER"]."\r\n");
fwrite($fp, date("d.m.Y H:i:s")."\r\n" );
fclose($fp);
?>


но он заменяет а не дописывает как сделать чтоб дописывал
только наш диапозон

все с записью разобрался
у меня
 $fp = fopen('ip_base.txt','w+');

а надо
$fp = fopen('ip_base.txt','а');


вот как с деапозоном быть

Спустя 2 часа, 14 минут, 2 секунды (28.04.2012 - 09:34) Nikitian написал(а):

if(ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('123.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('123.0.0.255')){
.....
}

Спустя 30 минут, 20 секунд (28.04.2012 - 10:04) Stas написал(а):
тоесть

<?
if(ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('123.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('123.0.0.255'))
{
$fp = fopen('ip_base.txt','a');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\r\n");
fwrite($fp, $_SERVER["HTTP_REFERER"]."\r\n");
fwrite($fp, date("d.m.Y H:i:s")."\r\n" );
fclose($fp);
}
?>


правельно я понял?

если да то неработает

Спустя 13 минут, 19 секунд (28.04.2012 - 10:17) Nikitian написал(а):
Так, а диапазон допустимых ip указали тот, который вам нужен или который использовался в примере?

Спустя 1 минута, 49 секунд (28.04.2012 - 10:19) Stas написал(а):
да как в примере я на denver тестирую он даже файл не создает

Спустя 1 минута, 25 секунд (28.04.2012 - 10:21) Nikitian написал(а):
А ничего, что денвер работает в локальной сети с подмаской 127.255.255.255 и адресом 127.0.0.1?
123.0.0.1 был взят чист дя примера.

Спустя 5 минут, 21 секунда (28.04.2012 - 10:26) Stas написал(а):
все понял поменял ip работает

вопрос такой
<?
if(ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('123.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('123.0.0.255'))
{
$fp = fopen('ip_base.txt','a');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\r\n");
fwrite($fp, $_SERVER["HTTP_REFERER"]."\r\n");
fwrite($fp, date("d.m.Y H:i:s")."\r\n" );
fclose($fp);
}
?>
такой скрипт под каждый ип делать

Спустя 6 минут, 56 секунд (28.04.2012 - 10:33) Nikitian написал(а):
Смотря какие диапазоны ip нужны.

Спустя 14 минут, 55 секунд (28.04.2012 - 10:48) Stas написал(а):
ну вот пример
84.200.220.225
89.115.256.212
2.165.55.259

Спустя 15 минут, 4 секунды (28.04.2012 - 11:03) Nikitian написал(а):

<?
if(
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('84.200.220.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('84.200.220.255') &&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('89.115.256.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('89.115.256.255')&&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('2.165.55.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('2.165.55.255')
)

{
$fp = fopen('ip_base.txt','a');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\r\n");
fwrite($fp, $_SERVER["HTTP_REFERER"]."\r\n");
fwrite($fp, date("d.m.Y H:i:s")."\r\n" );
fclose($fp);
}
?>

как-то так

Спустя 14 минут, 42 секунды (28.04.2012 - 11:17) Stas написал(а):
но делаю я так
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('84.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('84.0.0.255') &&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('89.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('89.0.0.255')&&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('2.0.0.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('2.0.0.255'))

правельно?

Спустя 2 минуты, 13 секунд (28.04.2012 - 11:20) Nikitian написал(а):
Нет, неправильно. Нули во втором и третьем октете не надо ставить )

Спустя 13 минут, 51 секунда (28.04.2012 - 11:34) Stas написал(а):
тоесть вписываю эти ip
84.200.220.225
89.115.256.212
2.165.55.259
но в этом случаи мняются
84.200.xxx.xxx
89.115.256.xxx
2.165.xx.xx
я ставлю
 ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('84.200.1.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('84.200.225.255') &&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('89.115.1.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('89.115.225.255')&&
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('2.165.1.1') && ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('2.165.225.255'))


неработает

Спустя 1 час, 7 минут, 17 секунд (28.04.2012 - 12:41) Stas написал(а):
решил так
<?php
if
(
ip2long($_SERVER['REMOTE_ADDR'])>=ip2long('127.0.0.1')
&&

ip2long($_SERVER['REMOTE_ADDR'])<=ip2long('127.0.0.255')
)

{
$fp = fopen('stat_ip\пользователь.txt','a');
fwrite($fp, $_SERVER['REMOTE_ADDR']."\r\n");
fwrite($fp, $_SERVER["HTTP_REFERER"]."\r\n");
fwrite($fp, date("d.m.Y H:i:s")."\r\n" );
fclose($fp);
}
?>


и таким способом для всех пользователей

а вот еще вопрос можноли такое с htaccess делать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.