Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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], $arr, TRUE))
    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 Яндекс.Метрика Яндекс цитирования