Prisoner
http://www.r-i-p.info/artview.php?id=602
статья правда по ПЕРЛ, но для пхп тоже годится
Добавлено:
HTTP_X_FORWARDED_FOR
копать в сторону этой переменной
Добавлено:
А вот ещё ссылок накопал, может кому пригодится
на ПХП:
http://www.cgsa.net/php/identifierShow.php
на Джаве:
http://www.elant.ru/faq/java/files/167.html
А вот это помогает определить айпи если даже за прокси юзер находится:
Код:

function get_real_IP() {
global $HTTP_VIA
, $HTTP_X_COMING_FROM
, $HTTP_CLIENT_IP
, $HTTP_X_FORWARDED_FOR
, $HTTP_X_FORWARDED
, $HTTP_COMING_FROM
, $HTTP_FORWARDED_FOR
, $HTTP_FORWARDED
, $REMOTE_HOST
, $REMOTE_ADDR ;
if($HTTP_X_FORWARDED_FOR) { // case 1.A: proxy && HTTP_X_FORWARDED_FOR is defined
$array = extractIP($HTTP_X_FORWARDED_FOR);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
if($HTTP_X_FORWARDED) { // case 1.B: proxy && HTTP_X_FORWARDED is defined
$array = extractIP($HTTP_X_FORWARDED);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
if($HTTP_FORWARDED_FOR) { // case 1.C: proxy && HTTP_FORWARDED_FOR is defined
$array = extractIP($HTTP_FORWARDED_FOR);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
if($HTTP_FORWARDED) { // case 1.D: proxy && HTTP_FORWARDED is defined
$array = extractIP($HTTP_FORWARDED);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
if($HTTP_CLIENT_IP) { // case 1.E: proxy && HTTP_CLIENT_IP is defined
$array = extractIP($HTTP_CLIENT_IP);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
/*
if($HTTP_VIA) {
// case 2:
// proxy && HTTP_(X_) FORWARDED (_FOR) not defined && HTTP_VIA defined
// other exotic variables may be defined
return ( $HTTP_VIA .
'_' . $HTTP_X_COMING_FROM .
'_' . $HTTP_COMING_FROM
) ;
}
if( $HTTP_X_COMING_FROM || $HTTP_COMING_FROM ) {
// case 3: proxy && only exotic variables defined
// the exotic variables are not enough, we add the REMOTE_ADDR of the proxy
return ( $REMOTE_ADDR .
'_' . $HTTP_X_COMING_FROM .
'_' . $HTTP_COMING_FROM
) ;
}
*/
// case 4: no proxy (or tricky case: proxy+refresh)
if($REMOTE_HOST) {
$array = extractIP($REMOTE_HOST);
if ($array && count($array) >= 1) {
return $array[0]; // first IP in the list
}
}
return $REMOTE_ADDR;
}
Добавлено:
А здесь ещё раз пример того что у прокси серверов с высокой степенью защиты фиг чего выташишь-но попытка не пытка...
http://antichat.ru/proxy/about.html