IP und Host abfragen - Fehler

Cusco

Erfahrenes Mitglied
Folgender Code müste mal Überarbeitet werden:
Ich weiß es nicht so genau aber ab und zu kommt es anscheint vor das mehere IP-Adressen in $ip zurück gegeben werden, was dann bei gethostbyaddr($ip) zu einen Fehlker ins Logfile führt. Wie finde ich die einzelnen IP-Adressen heraus? und den dazu gehörig Host? Die IP und Host-Adressen werden aktuell ins Logbuch geschrieben wenn ein Fehler auftrat. Gibt die Funktion getip() evt eine Array zurück? Ich kann das Leider nicht testen, da das Useraufkommen fehlt. Die Funktion hatte ich mal aus einen Forum so Übernommen, Weis daher nicht ganz genau was da abläuft.

Bei gethost() scheide ich die erste IP aus damit gethostbyaddr($ip); keinen Fehler mehr zurückgibt, ich denke aber das ist nur gemurkse.

Code:
// IP-Adresse herausfinden
function getip()
{
  if(getenv("HTTP_X_FORWARDED_FOR"))
  {$ip = getenv("HTTP_X_FORWARDED_FOR");}
  else
  {$ip = getenv("REMOTE_ADDR");}
  return $ip;
}

function gethost($ip)
{
  $pos = strpos($ip,",");
  if($pos > 1)
  {
    $ip = substr($ip,0,$pos-1);
  }

  $host = gethostbyaddr($ip);
  return $host;
}
 
PHP:
function getip()
{
return $_SERVER['HTTP_X_FORWARDED_FOR'] != "" && $_SERVER['HTTP_X_FORWARDED_FOR'] !== "127.0.0.1" ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
}

Dürfte genügen..
 
Das ist eigentlich nur dafür da, damit kein Unsinn in die Log reinkommt.

Der Angreifer könnte bspw. über ein Perl oder PHP Script eine IP vortäuschen und oder ein Proxy zu benutzen und diese Methode fragt den Proxy-Server was hinter der IP sozusagen steht und wenn die IP nicht 127.0.0.1 dann soll Sie natürlich eingetragen werden weil Sie dann interessant für uns ist und andernfalls wenn es der Fall sein sollte, dann würde auch die IP des Proxy-Servers auch generell reichen ;)
 
Zurück