ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 05.03.2007, 23:04
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

2BlackLogic ты имеешь представление о хранении целых чисел в памяти? я про современную архитектуру. простой пример, -1 и 255 типа char (один байт) будут выглядеть в памяти одинаково, в то же время (-1<255)==true понимаешь к чему я клоню? ip2long возвращает значение ip адреса (целое знаковое число размером в 4 байта). пхп его обрабатывает и у себя и на более низком уровне сравнивает два знаковых числа, так как в коде пхп они были обьявлены как signed, то сравнение идет уже действительно двух знаковых чисел. и если unsigned результат ip2long был больше (но не более чем на 2^31-1) чем 2^31-1 к примеру, то это число считается уже отрицательным. а отрицательное меньше положительного в результате, хотя как тебе кажется - больше
---
кстати, так к слову, если есть число a, то -a получается простой инверсией битов и прибавлением единицы.

Последний раз редактировалось ZaCo; 05.03.2007 в 23:10..
 
Ответить с цитированием

  #22  
Старый 05.03.2007, 23:08
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

Терь понятно.
Так как же быть? Кому верить то теперь?!
 
Ответить с цитированием

  #23  
Старый 05.03.2007, 23:16
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

2BlackLogic ну я хз конечно, но учитывая что ни один из приведенных кодов не работает, то видимо мой) тем более такая иллюстрация "алгоритма" предложенного кезом выглядит нагляднее
 
Ответить с цитированием

  #24  
Старый 06.03.2007, 17:28
Химический_Ёжик
Новичок
Регистрация: 09.01.2007
Сообщений: 9
Провел на форуме:
28497

Репутация: 21
Thumbs up

Ух... в какие степи вас занесло...
В общем... Использовал
Код:
<?  
$first="0.0.0.0";  
$last="255.255.255.254";  
$check="192.0.34.166";  
// 
$check_d=sprintf("%u",ip2long($check));
$first_d=sprintf("%u",ip2long($first));
$last_d=sprintf("%u",ip2long($last));  
//  
if( ($check_d>=$first_d) && ($check_d<=$last_d) )  {  
//xek 
 echo 'xek';  }  
?>
этот способ... (ИМХО самый короткий и понятный)

Рассматривал только те примеры в которых идет выборка ip из диапазона )
Sorry за кривой топик "Сравнение..." но нужно было выяснить именно принадлежность к диапазону...

ВСЕМ спасибо за ответы...
 
Ответить с цитированием

  #25  
Старый 09.03.2007, 08:14
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию

Цитата:
Сообщение от BlackLogic  
PHP код:
        $your_long_ip ip2long($ip);
        if ( (
$your_long_ip >= ip2long($ar[0])) && ($your_long_ip <= ip2long($ar[1])) ) { 
http://packetstormsecurity.org/0608-advisories/ip2long.txt

ip2long - не самый безопасный способ. только если кроме REMOTE_ADDR не будет больше ничего передаваться.
 
Ответить с цитированием

  #26  
Старый 27.04.2007, 21:48
Developer
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
Провел на форуме:
125505

Репутация: 116
По умолчанию

Вот такой вот скриптик сварганил:

PHP код:
<?php

$ip 
'10.10.10.10';

$bZone = array('10''10''1''1');
$eZone = array('10''10''255''255');

$info explode('.'$ip);
$error 0;

for (
$i 0$i 4$i++) {
    if (!(
$info[$i] >= $bZone[$i] && $info[$i] <= $eZone[$i])) {
        
$error 1;
        continue;
    }
}

echo (
$error) ? 'Не принадлежит' 'Принадлежит';

?>
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ