Как узнать IP, используя PHP

В общем обычном случае вы можете использовать данные, полученные из элемента REMOTE_ADDR массива $_SERVER. Но, что если посетитель подключен к Интернету с примением прокси-сервера. Да, вам достанется не тот "айпишник".

По итогам вышесказанного возможны три следующих случая:

<?php
function MyGetIP() {
 if (empty($_SERVER['HTTP_CLIENT_IP'])==FALSE) //"расшаренный"
  $r=$_SERVER['HTTP_CLIENT_IP'];
 elseif (empty($_SERVER['HTTP_X_FORWARDED_FOR'])==FALSE) //если прокси
  $r=$_SERVER['HTTP_X_FORWARDED_FOR'];
 else
  $r=$_SERVER['REMOTE_ADDR'];
 return $r;
}
//Показ результата
print "<p>".MyGetIP()."</p>";
?>

Содержимое переменной HTTP_CLIENT_IP к сожалению не описано в официальной документации.

Сей материал написан по мотивам: roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html. Демонстрация здесь.





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.