Отправка сообщения






Добро пожаловать!

Как узнать реальный IP-адрес клиента в PHP

Пожалуй, каждый опытный пользователь в сети интернет знает о том, что подключившись через прокси-сервер можно в некотором роде остаться за занавесом, не светя своим реальным IP адресом на сайтах. Клиент подключается к интернету через прокси-сервер, затем открывает ресурсы, и традиционно большая часть сайтов узнает IP адрес пользователя через глобальную переменную $_SERVER[‘REMOTE_ADDR’]. Тут есть подводные камни, наверное, как и в любом деле. Дело в том, что если подключение клиента происходит через прокси-сервер, то в глобальной переменной $_SERVER[‘REMOTE_ADDR’] будет находиться IP-адрес прокси-сервера, через который зашел пользователь, а не реальный IP пользователя.

Попытаться узнать реальный IP адрес машины клиента в PHP можно через дополнительные переменные HTTP_CLIENT_IP и HTTP_X_FORWARDER_FOR. Рассмотрим пример простого кода, в котором производится попытка определить действительный IP-адрес пользователя, путем элементарных проверок. В целях удобства использования код оформлен в виде функции.

Функция для определения реального IP-адреса:

function getIP(){
	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;
}

Рассказывать о том, как работает функция, думаю не нужно, т.к. там и так всё понятно и без этого.

Добавил: htmaker, 13.09.2015 г.
 
плохослабосойдетхорошоотлично (1 голосов, средний: 4,00 из 5)
Загрузка...

Комментарии

  1. Хусан пишет:

    Спасибо! =)

  2. huise пишет:

    Дак не сработает это:
    elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])){
    $ip=$_SERVER[‘HTTP_X_FORWARDED_FOR’];

    Если IP прокси не пустой{ $ip = ip прокси }

    И где тут определение реального IP ??

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Форум digital-planet.info

Комментарии

  • Загрузка...

Наверх