Провайдер выделяет пользователю, постоянный или меняющийся 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