Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка, попадает ли IP адрес, в диапазон IP адресов.
 
 автор: LordFreeman   (07.02.2007 в 12:36)   письмо автору
 
 

Доброго времени суток.
Наример имеем 2 диапазона адресов:
192.168.22.0 - 192.168.22.255
192.168.23.0 - 192.168.22.135

мой IP адрес к примеру 192.168.22.135
Нужен скрипт, который проверял бы принадлежность моего адреса к этим диапазонам и если он входит в эти диапазоны то писал бы: ваш IP адрес: $ipadress, вы из нашего сегмента.

Если не входит то: ваш IP адрес: $ipadress Вы не из нашего сегмента.
заранее спасибо за помощь :)

   
 
 автор: Divine   (07.02.2007 в 12:50)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 12:36)
 

Так обычными циклами, если я правильно понял суть вопроса.

   
 
 автор: tuder   (07.02.2007 в 13:03)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 12:36)
 

Преобразовать с помощью функции long2ip твой ип и начальные/конечные адреса диапазонов и сравнить.

if (($myIp>=$dStart1 or $myIp<=$dEnd1) or ($myIp>=$dStart2 or $myIp<=$dEnd2)) {

}

   
 
 автор: LordFreeman   (07.02.2007 в 13:47)   письмо автору
 
   для: tuder   (07.02.2007 в 13:03)
 

а как преобразовывать подробнее скажите пожалста :)

PS

<?php
$myIp
=$_SERVER['REMOTE_ADDR'];
$dStart1="87.224.149.1";
$dEnd1="87.224.149.255";
$dStart2="87.224.150.1";
$dEnd2="87.224.150.255";


if ((
$myIp>=$dStart1 AND $myIp<=$dEnd1) or ($myIp>=$dStart2 AND $myIp<=$dEnd2)) {

echo 
"твой IP-adress:$myIp, ты из нашего сегмента";
}
else
{
echo 
"твой IP-adress:$myIp, ты не из нашего сегмента";
}

?>



все, заработало, спасибо
Надо было исправить только or на AND в 2 местах ))

   
 
 автор: bronenos   (07.02.2007 в 20:11)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 13:47)
 

Кажется не очень правильный способ...
Здесь сработает
14.35.66.40
14.38.49.11

А здесь?
560.20.4.360
3.6.70.9

Точки то, точки...

   
 
 автор: LordFreeman   (07.02.2007 в 20:53)   письмо автору
 
   для: bronenos   (07.02.2007 в 20:11)
 

непонял

   
 
 автор: bronenos   (07.02.2007 в 22:19)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 20:53)
 

че непонятно
сервер сравнивает это не как числа через точку, а как знаки которые идут по очереди
мне кажется ет не совсем правильный способ...

   
 
 автор: Loki   (07.02.2007 в 23:09)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 13:47)
 

>а как преобразовывать подробнее скажите пожалста :)
http://php.net/long2ip
http://php.net/ip2long

   
 
 автор: tuder   (08.02.2007 в 10:16)   письмо автору
 
   для: LordFreeman   (07.02.2007 в 13:47)
 

>а как преобразовывать подробнее скажите пожалста :)


$myIp=ip2long($_SERVER['REMOTE_ADDR']);
$dStart1=ip2long("87.224.149.1");
$dEnd1=ip2long("87.224.149.255");
$dStart2=ip2long("87.224.150.1");
$dEnd2=ip2long("87.224.150.255");


>Надо было исправить только or на AND в 2 местах ))
Конечно. Лопухнулся я. :-)

   
 
 автор: LordFreeman   (08.02.2007 в 11:05)   письмо автору
 
   для: tuder   (08.02.2007 в 10:16)
 

>>а как преобразовывать подробнее скажите пожалста :)
>
>

>$myIp=ip2long($_SERVER['REMOTE_ADDR']);
>$dStart1=ip2long("87.224.149.1");
>$dEnd1=ip2long("87.224.149.255");
>$dStart2=ip2long("87.224.150.1");
>$dEnd2=ip2long("87.224.150.255");
>

>
>>Надо было исправить только or на AND в 2 местах ))
>Конечно. Лопухнулся я. :-)

Большое спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования