Будет ли значение набора $ _SERVER ['HTTP_CLIENT_IP'] пустой строкой?

У меня есть простой скрипт, который определяет IP-адрес пользователя:

function GetIp(){
      if (!empty($_SERVER['HTTP_CLIENT_IP']))
      //check ip from share internet
      {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
      }
      elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
      //to check ip is pass from proxy
      {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
      }
      else
      {
        $ip=$_SERVER['REMOTE_ADDR'];
      }
      return $ip;
}

Где-то в сети я видел кого-то, использующего этот сценарий:

if (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != '')
        $Ip = $_SERVER['HTTP_CLIENT_IP'];
    elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '')
        $Ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] != '')
        $Ip = $_SERVER['REMOTE_ADDR'];

Мне было интересно, не работает ли моя реализация .. Нужно ли мне проверять, установлено ли значение $ _ SERVER ['HTTP_CLIENT_IP'] , $ _ SERVER ['HTTP_X_FORWARDED_FOR'] или $ _ SERVER ['REMOTE_ADDR'] пуст? Или в этом нет необходимости?

8
задан Pacerier 1 October 2011 в 21:50
поделиться