function get_ip() {
  if($_SERVER) {
    if($_SERVER['HTTP_X_FORWARDED_FOR'])
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    elseif($_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 get_ip();
şu fonksiyonla dener misiniz en azından getenv ile dönüş almanız lazım?
kodun başladığı ilk satırda echo $_SERVER['REMOTE_ADDR'] diye output verin. bazen yazım hataları nedeniyle kontrol yerine atama yapılabilir ya da supergloballeri yeniden yazan hatalı bir kodlama olabilir..