Wird der Wert von set $_SERVER['HTTP_CLIENT_IP'] einen leeren string?

Habe ich ein einfaches Skript, welches bestimmt, die Nutzer-IP-Adresse:

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;
}

Nun im Netz irgendwo sah ich jemanden mit diesem Skript:

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'];

Ich Frage mich, ob meine Implementierung ist kaputt.. muss ich überprüfen, ob der Wert $_SERVER['HTTP_CLIENT_IP'], $_SERVER['HTTP_X_FORWARDED_FOR'] oder $_SERVER['REMOTE_ADDR'] leer ist? Oder ist es eigentlich unnötig, dies zu tun?

  • Was ist der Zweck dieses? Ist es in irgendeiner Weise relevant für die Sicherheit? Weil wenn es ist, REMOTE_ADDR ist die einzige, die sich lohnt.
  • Hängt davon ab. Ich erinnere mich an einige hosting-Unternehmen da draußen, die haben einen proxy vor Ihren Servern und schieben Sie in die proxies der lokalen IP die dazu führen, dass REMOTE_ADDR immer so etwas wie 10.0.0.1 ... Also, wenn Sie wollten, um die Client-IP-Adresse, die Sie hatten, um mit zu gehen X_FORWARDED_FOR
InformationsquelleAutor Pacerier | 2011-10-01
Schreibe einen Kommentar