Как узнать IP адрес пользователя вашего сайта?

Провайдер выделяет пользователю, постоянный или меняющийся IP адрес, но в пределах выделенных провайдеру диапазонов IP адресов. Узнав ваш IP, можно определить провайдера и его адрес со всеми вытекающими последствиями.

IP адрес становится известным серверу при установлении соединения, ваш компьютер сам его сообщает в надежде получить ответ. Если соединение происходит через прокси- сервер (сервер может быть с поддержкой анонимности), то ваш IP- адрес соответствует IP адресу этого прокси (и его сетевому имени). Довольно часто прокси- сервер "выдает" свое присутствие, передавая свои данные (и иногда ваш внутренний IP- адрес) в полях HTTP_FORWARDED, HTTP_X_FORWARDED_FOR, HTTP_VIA и других (нужно смотреть, например для PHP переменную $_SERVER).

Анонимные прокси- сервера тоже грешат подобным, насколько сервер анонимный нужно проверять самому, а не верить рекламе на сайте.
<?php 
  echo "<b>IP-адрес клиента:</b><br />".$_SERVER['REMOTE_ADDR']."<hr />"; 
?>
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'];

Читайте также: Лучшие прокси-провайдеры SOCKS5/HTTP/HTTPS