Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при побитовом сдвиге 
:(
    Опции темы
Gorlum
Дата 2.6.2005, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.9.2004

Репутация: нет
Всего: нет



У меня есть скрипт для определения принадлежности IP подключившегося, к сети, маска сети имеет вид 192.168.15.0/24, чтобы определить пренадлежность нада 192.168.15.0 и IP подключившегося перевести в число и побитово сдвинуть на 2 в степени 32-24. Написал такое

Код


  function stepen($x, $y)
  {
    $z=0;
    for ($i = 1; $i <= $y; $i++)
    {
      if ($z == 0) $z = $x;
      else $z = $z*$x;
    }
      return $z;
  }

  function Get_UAIX_IP()
  {
    $ip=(!empty($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:((!empty($_ENV['REMOTE_ADDR']))?$_ENV['REMOTE_ADDR']:$REMOTE_ADDR);
    $longIP = ip2long($ip);
    $Ua = 0;

    $file = fopen ("http://www.ggg.com/file1.txt", "r");
      if (!$file)
      {
        echo "<p>Unable to open remote file.\n";
        return false;
      }

    while (!feof ($file))
    {
      $line = fgets ($file, 1024);
      if (strlen($line) > 5)
      {
        $ip_in_string = explode("/", $line);

        $proper_address2 = $proper_address >> stepen(2, (32 - $ip_in_string[1]));
        $longIP2 = $longIP >> stepen(2, (32 - $ip_in_string[1]));
        if ($longIP == $proper_address2) $InNet = 1;

      }
      //break;
    }

    if ($InNet == 1) echo "You are from our net";
    else echo "You are not from our net";

    echo "<br>". $ip;

  }



сабака ниче не сдвигает, поэтому ниче не определяет, ПАМАГИТЕ!!
(извините за некоторую сумбурность, если я непонятно высказываюсь переспросите я поясню только не игнорируйте)
PM MAIL ICQ   Вверх
Mal Hack
Дата 2.6.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



ip2long() поюзай, т.к. то что в $_SERVER - строки.
И рядом глянь тему про определение IP.
PM ICQ   Вверх
Gorlum
Дата 2.6.2005, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 23.9.2004

Репутация: нет
Всего: нет



Определяет айпишник чудесно, переганяет ip2long чудесно, когда пишу
$proper_address2 = $proper_address >> stepen(2, (32 - $ip_in_string[1]));
получается шо в $proper_address2 и в $proper_address одно и тоже число
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.