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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Как 100% определить IP посетителя? Как-то же блокируют нас в чатах? 
:(
    Опции темы
mike_prog
Дата 3.4.2004, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как можно определить IP адрес посетителя. Знаю: PROXY, всякий там бред. Но теоретически же можно определить адрес как-то. Если даже прокся генерирует каждый раз новый адрес, то можно хотя-бы узнать адрес этого сеанса?
PM MAIL ICQ   Вверх
mike_prog
Дата 3.4.2004, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А как это сделать, на 79,3%?
PM MAIL ICQ   Вверх
Secandr
Дата 3.4.2004, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



на 100% опредилить нельзя, вообще ничего 100% не бывает!


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Mal Hack
Дата 3.4.2004, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код
function get_ip()
{
  if ($ip = getenv("HTTP_CLIENT_IP")) return $ip;

  if ($ip = getenv("HTTP_X_FORWARDED_FOR"))
  {
     if ($ip == '' || $ip == "unknown")
     {
         $ip = getenv("REMOTE_ADDR");
     }
     return $ip;
  }

  if ($ip = getenv("REMOTE_ADDR")) return $ip;
}

А вот тут детально описавается что и как: http://phpclub.ru/talk/showthread.php?threadid=42766
Правда, все-таки вариант того, что это обойдкт - есть, но он очень мал.
PM ICQ   Вверх
Master
Дата 3.4.2004, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



анонимный прокси обойдет все.
если кому-то надо не замеченым пройти на сайт, то он пройдет... если конечно не перебанить все анонимные прокси сервера )


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
pascal
Дата 4.4.2004, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
если конечно не перебанить все анонимные прокси сервера

Некоторые анонимные прокси косят под обычного клиента, как их ты банить предлагаешь?
А как насчёт каскадных прокси? я например в фирме через каскадный прокси по HTTP лазил, причём сервер не мог определить даже адрес моего ближайшего прокси... Иногда ещё похлеще приходиться извращаться чтобы за трафик не платить...
PM MAIL WWW ICQ   Вверх
-=::BlackCat::=-
Дата 4.4.2004, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 12.7.2003
Где: растёт анаша?

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





--------------------
-=::BlackCat::=-user posted image

такой дуратцкий аватар потому как мой 100х100, а такие подгрузить нелзя, движок форума чо сам не может его переделать??  гррр, админ, форум косячит  
PM MAIL ICQ   Вверх
arial
Дата 14.11.2004, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



Код
function get_ip()
{
   if (!empty($_SERVER) && isset($_SERVER['REMOTE_ADDR'])) {
       $remote_addr = $_SERVER['REMOTE_ADDR'];
   } elseif (!empty($_ENV) && isset($_ENV['REMOTE_ADDR'])) {
       $remote_addr = $_ENV['REMOTE_ADDR'];
   } elseif (@getenv('REMOTE_ADDR')) {
       $remote_addr = getenv('REMOTE_ADDR');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
       $http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED_FOR'])) {
       $http_x_forwarded_for = $_ENV['HTTP_X_FORWARDED_FOR'];
   } elseif (@getenv('HTTP_X_FORWARDED_FOR')) {
       $http_x_forwarded_for = getenv('HTTP_X_FORWARDED_FOR');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_X_FORWARDED'])) {
       $http_x_forwarded = $_SERVER['HTTP_X_FORWARDED'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_X_FORWARDED'])) {
       $http_x_forwarded = $_ENV['HTTP_X_FORWARDED'];
   } elseif (@getenv('HTTP_X_FORWARDED')) {
       $http_x_forwarded = getenv('HTTP_X_FORWARDED');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED_FOR'])) {
       $http_forwarded_for = $_SERVER['HTTP_FORWARDED_FOR'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED_FOR'])) {
       $http_forwarded_for = $_ENV['HTTP_FORWARDED_FOR'];
   } elseif (@getenv('HTTP_FORWARDED_FOR')) {
       $http_forwarded_for = getenv('HTTP_FORWARDED_FOR');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_FORWARDED'])) {
       $http_forwarded = $_SERVER['HTTP_FORWARDED'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_FORWARDED'])) {
       $http_forwarded = $_ENV['HTTP_FORWARDED'];
   } elseif (@getenv('HTTP_FORWARDED')) {
       $http_forwarded = getenv('HTTP_FORWARDED');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_VIA'])) {
       $http_via = $_SERVER['HTTP_VIA'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_VIA'])) {
       $http_via = $_ENV['HTTP_VIA'];
   } elseif (@getenv('HTTP_VIA')) {
       $http_via = getenv('HTTP_VIA');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_X_COMING_FROM'])) {
       $http_x_coming_from = $_SERVER['HTTP_X_COMING_FROM'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_X_COMING_FROM'])) {
       $http_x_coming_from = $_ENV['HTTP_X_COMING_FROM'];
   } elseif (@getenv('HTTP_X_COMING_FROM')) {
       $http_x_coming_from = getenv('HTTP_X_COMING_FROM');
   }

   if (!empty($_SERVER) && isset($_SERVER['HTTP_COMING_FROM'])) {
       $http_coming_from = $_SERVER['HTTP_COMING_FROM'];
   } elseif (!empty($_ENV) && isset($_ENV['HTTP_COMING_FROM'])) {
       $http_coming_from = $_ENV['HTTP_COMING_FROM'];
   } elseif (@getenv('HTTP_COMING_FROM')) {
       $http_coming_from = getenv('HTTP_COMING_FROM');
   }

   if (!empty($remote_addr)) {
       $direct_ip = $remote_addr;
   }

   $proxy_ip     = '';
   if (!empty($http_x_forwarded_for)) {
       $proxy_ip = $http_x_forwarded_for;
   } elseif (!empty($http_x_forwarded)) {
       $proxy_ip = $http_x_forwarded;
   } elseif (!empty($http_forwarded_for)) {
       $proxy_ip = $http_forwarded_for;
   } elseif (!empty($http_forwarded)) {
       $proxy_ip = $http_forwarded;
   } elseif (!empty($http_via)) {
       $proxy_ip = $http_via;
   } elseif (!empty($http_x_coming_from)) {
       $proxy_ip = $http_x_coming_from;
   } elseif (!empty($http_coming_from)) {
       $proxy_ip = $http_coming_from;
   }

   if (empty($proxy_ip)) {
       // True IP without proxy
       return $direct_ip;
   } else {
       $is_ip = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxy_ip, $regs);
       if ($is_ip && (count($regs) > 0)) {
           return $regs[0];
       } else {
           return 0;
       }
   }
}
Спёр из phpmyadmin.


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
IZ@TOP
Дата 15.11.2004, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



arial, мощьные навароты... только толку?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
Дата 15.11.2004, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



Цитата(IZ @ 15.11.2004, 10:41)
arial, мощьные навароты... только толку?

Навороты позволяют поднять процент определения реального IP с 34,5% до 79,3%. ;)


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
IZ@TOP
Дата 15.11.2004, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



arial, откуда цифры?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
Дата 16.11.2004, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



От балды.


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
Goganchic
Дата 30.4.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(IZ@TOP @  15.11.2004,  17:52 Найти цитируемый пост)
arial, откуда цифры? 


Цитата(arial @  16.11.2004,  17:49 Найти цитируемый пост)
От балды.

Офигенная статистика smile
PM Jabber   Вверх
GZep
Дата 30.4.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



хороший скрипт, только размер просто очень большой... можно уменьшить его, оптимизировав, в разы...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
GZep
Дата 30.4.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



вот, сделал!
Код

function IPDetect() {
        $serverVars = array(
            "HTTP_X_FORWARDED_FOR",
            "HTTP_X_FORWARDED",
            "HTTP_FORWARDED_FOR",
            "HTTP_FORWARDED",
            "HTTP_VIA",
            "HTTP_X_COMING_FROM",
            "HTTP_COMING_FROM",
            "HTTP_CLIENT_IP"
        );
        foreach ($serverVars as $serverVar)
            if (!empty($_SERVER[$serverVar]))
                $proxyIP = $_SERVER[$serverVar];
        if (!empty($proxyIP)) {
            $isIP = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxyIP, $regs);
            if ($isIP && (sizeof($regs) > 0))
                return $regs[0];
        }
        return $_SERVER['REMOTE_ADDR'];
}

в функцию добавил:
  • теперь и "HTTP_CLIENT_IP" проверяется...
  • размер стал гораздо меньше...
  • теперь функция не возвращает "0", если проксик анонимный...



--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
woin
Дата 30.4.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(GZep @  30.4.2007,  10:05 Найти цитируемый пост)
вот, сделал!

А как к этому теперь обращаться?
 
Код

$user_ip=IPDetect();

 
PM MAIL   Вверх
GZep
Дата 30.4.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



ну, да... smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 30.4.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



GZep, если я ничего не путаю, в HTTP_X_FORWARDED_FOR реальный IP обычно бывает последним, а Ваш код отловит первый... или я всё же заблуждаюсь?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
GZep
Дата 30.4.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



SelenIT, в этом примере все делается в том же порядке, что и в содранном из phpmyadmin примере arial'a. Только вместо используется цикл, делающий код изящьнее и более легким к изменениям...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 30.4.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



GZep, сорри, не приметил preg_match'а в конце примера arialа (лень было код развернуть). Да, функционально оба примера почти эквивалентны (а если добавить в Ваш изящный цикл ещё и поиск в $_ENV - будут вообще эквивалентны). Но правильно ли они работают - вопрос по-прежнему открытый;)...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
GZep
Дата 30.4.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



Все правильно... только вот зачем $_ENV?

Могу добавить функцию проверки Ip адресса, чтобы прокси сервер уже не смог бы передать что-то вроде такого: 999.999.999.999. Сейчас он может такое передать...


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 30.4.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Цитата(GZep @  30.4.2007,  15:59 Найти цитируемый пост)
функцию проверки Ip адресса

Имхо, лишнее. Степень доверия к данному адресу от этого вряд ли сильно вырастет smile.

Цитата(GZep @  30.4.2007,  15:59 Найти цитируемый пост)
зачем $_ENV?

Не всегда эти вещи в серверных переменных оказываются. С IIS-ом, по-моему, бывают с этим проблемы. Да и вообще среди хостеров иногда попадаются ба-альшие оригиналы;)...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
GZep
Дата 30.4.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



Цитата(SelenIT @  30.4.2007,  16:25 Найти цитируемый пост)
Имхо, лишнее

афтор просил 100%! smile 
Цитата(SelenIT @  30.4.2007,  16:25 Найти цитируемый пост)
Не всегда эти вещи в серверных переменных оказываются

ну, тогда добавлю...

вот новый код:
Код

function IPDetect() {
        $serverVars = array(
            "HTTP_X_FORWARDED_FOR",
            "HTTP_X_FORWARDED",
            "HTTP_FORWARDED_FOR",
            "HTTP_FORWARDED",
            "HTTP_VIA",
            "HTTP_X_COMING_FROM",
            "HTTP_COMING_FROM",
            "HTTP_CLIENT_IP"
        );
        foreach ($serverVars as $serverVar) {
            if (!empty($_SERVER) && !empty($_SERVER[$serverVar]))
                $proxyIP = $_SERVER[$serverVar];
            elseif (!empty($_ENV) && isset($_ENV[$serverVar]]))
                $proxyIP = $_ENV[$serverVar]];
            elseif (@getenv($serverVar]))
                $proxyIP = getenv($serverVar]);
        }
        if (!empty($proxyIP)) {
            $isIP = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxyIP, $regs);
            if ($isIP && (sizeof($regs) > 0) ?? isIP($regs[0]))
                return $regs[0];
        }
        return $_SERVER['REMOTE_ADDR'];
}
function isIP($ip) {//нас не обмануть!!!!
        $tmp = explode('.', $ip);
        if (count($tmp) != 4)
            return false;
        for ($i = 0; $i < 4; $i++)
            if (!preg_match("/^[0-9]+$/", $tmp[$i]) || $tmp[$i] < 0 || $tmp[$i] > 255)
                    return false;
        return true;
}

Вот самый идеальный на сегодняшний день скрипт!


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
SelenIT
Дата 30.4.2007, 17:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Я бы, на мой характер, переписал ф-цию isIP в виде function isIP($ip) { return ip2long($ip) != -1; }. Хотя, для единообразия можно просто заменить [0-9]{1,3} на что-нибудь вроде (?:[01]?\d{1,2}|2[0-4]\d|25[0-5]) и вообще обойтись без неё... smile


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
woin
Дата 30.4.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(GZep @  30.4.2007,  16:42 Найти цитируемый пост)
Вот самый идеальный на сегодняшний день скрипт! 

 В нём кажется много лишних квадратных скобочек  smile 

PM MAIL   Вверх
Anarki
Дата 30.4.2007, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добавлю еще парочку заголовков
HTTP_XROXY_CONNECTION
HTTP_PROXY_CONNECTION
HTTP_USERAGENT_VIA

А вообще, зайдет человек через SOCKS сервер и не определите вы его IP настоящий.


--------------------
PM WWW   Вверх
GZep
Дата 1.5.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



Код

function IPDetect() {
        $serverVars = array(
            "HTTP_X_FORWARDED_FOR",
            "HTTP_X_FORWARDED",
            "HTTP_FORWARDED_FOR",
            "HTTP_FORWARDED",
            "HTTP_VIA",
            "HTTP_X_COMING_FROM",
            "HTTP_COMING_FROM",
            "HTTP_CLIENT_IP",
            "HTTP_XROXY_CONNECTION",
            "HTTP_PROXY_CONNECTION",
            "HTTP_USERAGENT_VIA"
        );
        foreach ($serverVars as $serverVar) {
            if (!empty($_SERVER) && !empty($_SERVER[$serverVar]))
                $proxyIP = $_SERVER[$serverVar];
            elseif (!empty($_ENV) && isset($_ENV[$serverVar]]))
                $proxyIP = $_ENV[$serverVar]];
            elseif (@getenv($serverVar]))
                $proxyIP = getenv($serverVar]);
        }
        if (!empty($proxyIP)) {
            $isIP = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxyIP, $regs);
            $long = ip2long($regs[0]);
            if ($isIP && (sizeof($regs) > 0) && $long != -1 && $long !== false)
                return $regs[0];
        }
        return $_SERVER['REMOTE_ADDR'];
}

Anarki, хорошо, новые заголовки я добавил, но хорошо бы увидеть откуда вы их взяли...
Цитата(SelenIT @  30.4.2007,  17:01 Найти цитируемый пост)
ip2long($ip) != -1

Ok. Только ip2long($ip) != -1 && ip2long($ip) !== false.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Kallisto
Дата 1.5.2007, 14:05 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: -3
Всего: -1




Модератор: Сообщение скрыто.

PM MAIL   Вверх
GZep
Дата 1.5.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

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



Цитата(Kallisto @  1.5.2007,  14:05 Найти цитируемый пост)
Вы какой-то бред говорите.

Не хамите! smile 
Цитата(Kallisto @  1.5.2007,  14:05 Найти цитируемый пост)
способа защиты: 

мы тут защиту не делаем!

Мы просто вычесляем ip средствами php

Цитата(Kallisto @  1.5.2007,  14:05 Найти цитируемый пост)
Но запомните: если надо пройти - пройдут.

Если бы вы прочитали тему то увидели бы что это уже писАли. smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Gold Dragon
Дата 2.5.2007, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



GZep, а можешь прокомментировать строки своей функции


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Sai
Дата 27.5.2007, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Kallisto @ 1.5.2007,  14:05)
Вы какой-то бред говорите.
Если поставить прокси полностью анонимный, то запрос будет идти так: ВЫ->прокси->прокси сам! выкачивает страницу и отдает вам.. То есть всякие ваши REMOTE_ADDR И прочее все в задницу..

я знаю 2 более-менее нормальных способа защиты: 
1. Поставить на сайт ява-апплет, который реально! выцепляет ваш ип, потому как запускается у вас на компе. (кому нужен - пишите в личку)
2. Это посмотреть как сделана защита в чате бородина (реклама [censored 2] ) там идет сбор всех плагинов версии и параметров что есть на машине, кодирует и все. Это более-менее уникальный код
..

Но запомните: если надо пройти - пройдут.
Через прокси, впн, браузеры сменят, яву отключат, но пройдут.


100% защиты небывает  smile  smile 
--
пс : кому помог - респектики ;)

Вопрос к тему чату бородина и вычисления реального IP.

Объесняю на пальцах. Для того что бы чат Бородина работал во всех браузерах нужно повесить веб сервер и демона чата на один порт (к примеру 80) и как это сделать ? 
А сделать это просто. Нужно поставить определеный веб сервер на порт 80 который бы при посылке запроса смотрел правила и рулил запрос куда надо. Если запрос к апачу рулил бы на апач (порт апача к примеру 8080), а если к чату то рулил бы на демон чата (порт к примеру 8888). Вся трабла в том что при таком методе IP клиенту присваивался бы веб сервера что бы привело к бану сети т.е. демон чата забанил бы сам себя. Задача сделать так что бы сохранить реальный IP пользователя при перенаправлении запросов. 

PM MAIL   Вверх
NetFlame
Дата 4.9.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 8.3.2006
Где: Москва

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



Вы гении.
PM MAIL WWW ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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