IP-Adresse des Nutzers speichern

socke999

Erfahrenes Mitglied
Hallo zusammen,
ich habe mir selbst ein kleines Gästebuch - Skript in PHP und MYSQL gebastelt. Soweit funktioniert auch alles, nur wenn ein neuer Gästebucheintrag eingegeben wurde sollte dabei auch die IP Adresse erfasst werden.
und zwar mach ich das so:
PHP:
$ip = $_SERVER['REMOTE_ADDR'];

ABER: als IP steht immer 172.27.0.1, obwohl verschiedene Einträge ganz sicher aus verschiedenen Netzwerken und PC stammen. Sie können gar nicht die gleiche IP Adresse haben.

Kann mir da jemand weiter helfen?
 
als IP steht immer 172.27.0.1
Laut http://network-tools.com/
IP address: 172.27.0.1
No host name is associated with this IP address or no reverse lookup is configured.
Error:Host not found
172.27.0.1 is from Other(XX) in region Unclassified

Sprich, den Host gibts gar nicht.
Bin da auch kein Profi, aber was soll das für ein Adresraum sein? Hast Du mal lokal getestet? Da müsste ja dann sowas wie 192.168.XXX.XXX drinn stehen.
 
ABER: als IP steht immer 172.27.0.1, obwohl verschiedene Einträge ganz sicher aus verschiedenen Netzwerken und PC stammen. Sie können gar nicht die gleiche IP Adresse haben.

Kann mir da jemand weiter helfen?

Kann es sein, dass deine "Besucher" aus deinem privaten Netzwerk kommen?
Oder sitzt du hinter einem Router oder ähnlichem, welches die Seite weiterleitet?

Dieser IP-Bereich gehört zum privaten Adressraum: siehe "3. Private Address Space" in RFC1918
 
Meine Vermutung:

Dein Hosting Paket benutzt eine Art Load Balancer o. ä. Produkt, dass die Anfragen weiterleitet, aber eben nicht den Benutzer korrekt weiterleitet.
Dadurch erscheint nur die IP des Mittelsmann auf deiner Seite und nicht die des eigentlichen Besuchers.

Als Lösung würde ich vorschlagen deinen Hoster anzusprechen und zu fragen ob es wirklich so ist...
Allerdings solltest du dafür auch testen ob es wirklich so ist...

PHP:
<?php 
echo $_SERVER['REMOTE_ADDR']; 
?>

Und mehrere Leute ein solches Skript direkt aufrufen lassen.
Falls überall die gleiche IP angezeigt wird, ist das Problem m. E. n. bei deinem Hoster zu suchen.
 
Also, local funktioniert alles korrekt, nur wenn ich die seite auf den Host lade dann steht immer die selbe IP.

Mir kommt auch vor, dass da mein Anbieter so etwas wie forwarding verwendet ...

Deshalb hab ich mal so ein skript im web gefunden:
PHP:
Ich nutze diese Version, die IP sollte in $realip stehen:

if (isSet($_SERVER))
   {
    if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"]))
       {
        $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
       }
    elseif
       (isSet($_SERVER["HTTP_CLIENT_IP"]))
       {
        $realip = $_SERVER["HTTP_CLIENT_IP"];
       }
    else
       {
        $realip = $_SERVER["REMOTE_ADDR"];
       }
   }
else
   {
     if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
        {
          $realip = getenv( 'HTTP_X_FORWARDED_FOR' );
        }
     elseif
        ( getenv( 'HTTP_CLIENT_IP' ) )
        {
          $realip = getenv( 'HTTP_CLIENT_IP' );
        }
     else
        {
          $realip = getenv( 'REMOTE_ADDR' );
        }
   }

aber das skritp stammt von 2004, mir scheint dass das nicht mehr funktionstüchtig ist auf PHP 5 oder?
 
Zurück