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

Форум PHP

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

 

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

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

тема: Определение ip-адреса посетителя сайта
 
 автор: tAleks   (02.06.2012 в 17:02)   письмо автору
 
 

Наткнулся в одном скрипте на такую функцию:



       function get_ip()
        {
            $ip = false;
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
                $ipa[] = trim(strtok($_SERVER['HTTP_X_FORWARDED_FOR'], ','));
            
            if (isset($_SERVER['HTTP_CLIENT_IP']))
                $ipa[] = $_SERVER['HTTP_CLIENT_IP'];       
            
            if (isset($_SERVER['REMOTE_ADDR']))
                $ipa[] = $_SERVER['REMOTE_ADDR'];
            
            if (isset($_SERVER['HTTP_X_REAL_IP']))
                $ipa[] = $_SERVER['HTTP_X_REAL_IP'];
            
            // проверяем ip-адреса на валидность начиная с приоритетного.
            foreach($ipa as $ips)
            {
                //  если ip валидный обрываем цикл, назначаем ip адрес и возвращаем его
                if($this->is_valid_ip($ips))
                {                    
                    $ip = $ips;
                    break;
                }
            }
            return $ip;
            
        }


Вообще, раньше я не парился по этому поводу, определял так:

$ipa = $_SERVER['REMOTE_ADDR'];


Вопрос: Где можно почитать описание вышеуказанных переменных массива $_SERVER?

В мануале описания этих переменных не нашел.

  Ответить  
 
 автор: cheops   (02.06.2012 в 17:51)   письмо автору
 
   для: tAleks   (02.06.2012 в 17:02)
 

То, что начинается с X - это нестандартные HTTP-заголовки, которые вводятся серверами, клиентами, а то и пользователями. Конкретно за этими нужно в исходные коды лезть, в HTTP_X_FORWARDED_FOR иногда помещают истинный IP-адрес, если клиент обращается через прокси-сервер, поэтому эта проверка идет первой. HTTP_CLIENT_IP - судя по всему из той же оперы. В общем, если у вас не так много клиентов из под прокси-серверов, можете не заморачиваться, а если много, тоже можете не заморачиваться - прозрачными прокси-серверами почти никто не пользуется, а непрозрачный вам ничего не сообщит о клиенте.

  Ответить  
 
 автор: Sfinks   (04.06.2012 в 12:05)   письмо автору
 
   для: tAleks   (02.06.2012 в 17:02)
 

HTTP_X_FORWARDED_FOR полезен для вап-сайтов. В нем содержится реальный ИП пользователя, смотрящего через мини-оперу. А таких очень много.

  Ответить  
Rambler's Top100
вверх

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