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

Форум PHP

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

 

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

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

тема: Определение IP-адреса
 
 автор: Аноним   (15.12.2006 в 12:22)
 
 

Вот так я определяю ip

$ip = $_SERVER[REMOTE_ADDR];

Дальше мне нужно проверить если айпи начинается с
192.168 тогда зделать одно действие иначе другое...
Ноя незнаю как проверить помогите пожалуста.

   
 
 автор: LuxeMate   (15.12.2006 в 12:34)   письмо автору
 
   для: Аноним   (15.12.2006 в 12:22)
 


<?php 
$ip 
$_SERVER['REMOTE_ADDR'];
$patern "((\d+).(\d+).(\d+).(\d+))";
preg_match($patern$ip$iparray);
if(
$iparray[1] == 192 && $iparray[2] == 168

// действие в случае true 

else 

// действие в случае fals
}
?> 

Вроде как то так..

   
 
 автор: Аноним   (15.12.2006 в 12:38)
 
   для: LuxeMate   (15.12.2006 в 12:34)
 

Пасиба щас попробую

   
 
 автор: LuxeMate   (15.12.2006 в 12:41)   письмо автору
 
   для: Аноним   (15.12.2006 в 12:38)
 

Я там не правильно сделал вот этот точно работает,я сам проверил!


<?php  
$ip 
$_SERVER['REMOTE_ADDR']; 
$patern "((\d+).(\d+).(\d+).(\d+))"
preg_match($patern$ip$iparray); 
if(
$iparray[1] == 192 && $iparray[2] == 168)  
{  
// действие в случае true  
}  
else  
{  
// действие в случае fals 

?>  

   
 
 автор: Аноним   (15.12.2006 в 12:46)
 
   для: LuxeMate   (15.12.2006 в 12:41)
 

Да первый вариант не работал ))) Огромное спасибо за помощь...

   
 
 автор: tuder   (15.12.2006 в 13:53)   письмо автору
 
   для: LuxeMate   (15.12.2006 в 12:41)
 

Ой, а что так сложно-то?


if (substr($REMOTE_ADDR, 0, 8)=="192.168.") }

} else {

}

   
 
 автор: Niks   (15.12.2006 в 14:32)   письмо автору
 
   для: tuder   (15.12.2006 в 13:53)
 

А как сделать, если таких диапазонов IP несколько, например 192.168 | 88.86 ...?

   
 
 автор: kasmanaft   (15.12.2006 в 18:47)   письмо автору
 
   для: Niks   (15.12.2006 в 14:32)
 


<?
$arr 
= array("192.168""88.86");
$addr explode('.'$_SERVER['REMOTE_ADDR']);
if (
in_array($addr[0].'.'.$addr[1], $arrTRUE))
    echo 
'Найден в массиве';
else echo 
'Не найден';
?>

   
 
 автор: Unkind   (15.12.2006 в 19:17)   письмо автору
 
   для: Аноним   (15.12.2006 в 12:22)
 

... если айпи начинается с
192.168 тогда зделать одно действие иначе другое...

Хотите сделать бан по диапозону IP-адресов? Лучше так:


<?php
function inet_aton($ip $_SERVER['REMOTE_ADDR'])
{
list(
$a$b$c$x) = explode("."$ip);
return 
$a 256 256 256 $b 256 256 $c 256 $x;
}

$x inet_aton("192.168.0.0");
$z inet_aton("192.168.255.255");

if(
inet_aton() >= $x && inet_aton() <= $z)
{
die(
"Banned");
}
?>

   
 
 автор: Саня   (15.12.2006 в 19:41)   письмо автору
 
   для: Unkind   (15.12.2006 в 19:17)
 

Не придумывайте велосипед. Такая функция уже есть. Называется ip2long().

   
 
 автор: Unkind   (16.12.2006 в 11:09)   письмо автору
 
   для: Саня   (15.12.2006 в 19:41)
 

Ну еще лучше...

   
Rambler's Top100
вверх

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