просмотров:8088
Получение IP-адреса пользователя

В книгах по PHP часто встречаются примеры в которых описано, как можно определить ip адрес юзера зашедшего к вам на сайт. Для этого предлагают прочитать значение элемента 'REMOTE_ADDR' массива $_SERVER и все. Но не все так однозначно в этом мире. Эта конструкция не всегда работает корректно, т.е. не всегда содержит реальный IP адрес. Если юзер зашел через прокси-сервер, то $_SERVER['REMOTE_ADDR'] вернет вам адрес этого прокси-сервера. А оно вам надо?

Для того чтобы добраться до реального адреса посетителя, нужно сначала попытаться считать значения $_SERVER['HTTP_CLIENT_IP'], а затем в случае неудачи $_SERVER['HTTP_X_FORWARDED_FOR']. А уж потом, если ip считать не удалось, то считываем наше заветное SERVER['REMOTE_ADDR']. Все вышесказанное реализовано в ниже написанной функции.

function get_real_ip() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } Пример использования: $ip = get_real_ip();
просмотров:8088 | комметариев: 0

Оставить комментарий:    

Ваше имя:
 
Текст комментария:
 
+ 1 =