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

Форум PHP

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

 

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

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

тема: Распределить по IP
 
 автор: FialkO   (23.10.2007 в 19:44)   письмо автору
 
 

Есть несколько IP
192.1.2.2-192.1.2.55
193.1.2.2-193.1.2.55
194.1.2.2-194.1.2.55
Как сделать чтобы при заходи с этих IP
писалось "IP определен" а с других "IP не определен"
Заранее блогадарю!

   
 
 автор: sim5   (23.10.2007 в 19:50)   письмо автору
 
   для: FialkO   (23.10.2007 в 19:44)
 

Запишите эти IP в массив, а потом проверяйте:


<?
if (in_array(IP, array)) //определено ; else...

   
 
 автор: Ralph   (23.10.2007 в 20:58)   письмо автору
 
   для: FialkO   (23.10.2007 в 19:44)
 

Определяйте подсеть с помощью деление+округление или функции работы со строками

   
 
 автор: FialkO   (23.10.2007 в 21:34)   письмо автору
 
   для: Ralph   (23.10.2007 в 20:58)
 

А по конкретней можно?

   
 
 автор: Unkind   (23.10.2007 в 23:15)   письмо автору
 
   для: FialkO   (23.10.2007 в 21:34)
 

<?php
$ip
[] = array('192.1.2.2''192.1.2.55');
$ip[] = array('193.1.2.2''193.1.2.55');
$ip[] = array('193.1.2.2''193.1.2.55');

$current_ip '192.1.2.10';
$current_ip ip2long($current_ip);

for(
$i 0$in_range false$i count($ip); $i++)
{
    if( 
is_array($ip[$i]) )
    {
        if( 
$current_ip >= ip2long($ip[$i][0]) && $current_ip <= ip2long($ip[$i][1]) )
        {
            
$in_range true;
        }
    }
    else
    {
        if( 
$current_ip == ip2long($ip[$i]) ) $in_range true;
    }
}

if( 
$in_range )
{
    echo 
"IP определен";
}
else
{
    echo 
"IP не определен";
}
?>

   
 
 автор: FialkO   (26.10.2007 в 14:30)   письмо автору
 
   для: Unkind   (23.10.2007 в 23:15)
 

Все вроде понятно, кроме строки: $current_ip = '192.1.2.10';
Поясните пожалуйста.

   
 
 автор: sim5   (26.10.2007 в 14:57)   письмо автору
 
   для: FialkO   (26.10.2007 в 14:30)
 

Текущий IP, то есть тот IP, о котором вы и хотите узнать - определен он или нет.

   
 
 автор: Nemezis   (28.10.2007 в 17:59)   письмо автору
 
   для: FialkO   (23.10.2007 в 19:44)
 


<?php
function inRange($myIp$ipFrom$ipTo) {
        
$myIp sprintf('%u'ip2long($myIp));
        
$tmp $myIp 0xff;
        if (!
$tmp || $tmp==255) {
                return 
false;
        }
        
$ipFrom sprintf('%u'ip2long($ipFrom));
        
$ipTo sprintf('%u'ip2long($ipTo));
        if (
$myIp>$ipFrom && $myIp<$ipTo) {
                return 
true;
        }
        return 
false;
}
?>

[url]http://forum.dklab.ru/php/heap/FunktsiyaProverkiVhogdeniyaIpVDiapa zon.html[/url]

   
Rambler's Top100
вверх

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