Kendi kullandığım fonksiyon proxiye takılmaz sanırsam;
<?
function userip(){

   if (isSet($_SERVER)){

       if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {

           $IP = $_SERVER["HTTP_X_FORWARDED_FOR"];

       } elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {

           $IP = $_SERVER["HTTP_CLIENT_IP"];

       } else {

           $IP = $_SERVER["REMOTE_ADDR"];

       }

   } else {

       if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {

           $IP = getenv( 'HTTP_X_FORWARDED_FOR' );

       } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {

           $IP = getenv( 'HTTP_CLIENT_IP' );

       } else {

           $IP = getenv( 'REMOTE_ADDR' );

       }

   }

   return $IP;

}
echo userip();
?>