Senf: IP-Adresse anzeigen

Hallo!

Mit welcher Funktion kann ich meine und die IP-Adresse meines "Besuchers" anzeigen lassen?

Bitte um Hilfe!

Senf

  1. Moin,

    Mit welcher Funktion kann ich meine und die IP-Adresse meines "Besuchers" anzeigen lassen?

    $REMOTE_ADDR suchst wohl :) (für die IPs der Besucher deiner Site)
    Und was verstehst unter Deiner IP?

    Senf

    cu RFZ

    1. hi,

      $REMOTE_ADDR suchst wohl :) (für die IPs der Besucher deiner Site)

      für aktuelle php-versionen ist $_SERVER['REMOTE_ADDR'] zu empfehlen, bzw. evtl. auch $_ENV[...].

      gruss,
      wahsaga

      1. Hallo,

        $REMOTE_ADDR suchst wohl :) (für die IPs der Besucher deiner Site)
        für aktuelle php-versionen ist $_SERVER['REMOTE_ADDR'] zu empfehlen, bzw. evtl. auch $_ENV[...].

        Zu beachten ist dabei noch, dass der User zum Beispiel ueber einen Proxy auf Deine Seite gelangen kann. Hierbei _kann_ der Header "HTTP_X_FORWARDED_FOR" gesetzt sein.

        In diesem Fall ist es sehr gut moeglich, dass statt der IP-Adresse, die der Provider dem User zugewiesen hat (und die Du wahrscheinlich ermitteln willst), eine IP-Adresse aus dem "privaten", reservierten IP-Adress-Bereich in $_SERVER['REMOTE_ADDR'] steht - oder eben die des Proxies.

        Schau Dir dazu mal an, wie die Leute von php.net das loesen: http://cvs.php.net/co.php/phpweb/include/ip-to-country.inc?login=2&r=1.19, ganz unten, Funktion "i2c_realip()".

        Beste Gruesse

        Jan

        1. Moin!

          In diesem Fall ist es sehr gut moeglich, dass statt der IP-Adresse, die der Provider dem User zugewiesen hat (und die Du wahrscheinlich ermitteln willst), eine IP-Adresse aus dem "privaten", reservierten IP-Adress-Bereich in $_SERVER['REMOTE_ADDR'] steht - oder eben die des Proxies.

          Nein, das ist absolut unmöglich. In REMOTE_ADDR steht _immer_ die IP-Adresse des anfragenden Internet-Gerätes drin, an die auch die Antwort geschickt werden muß. Das ist, wenn Proxies oder Gateways eingesetzt werden, eben deren Adresse.

          Die Möglichkeit besteht, dass im HTTP_X_FORWARDED_FOR eine Information über den "richtigen" Empfänger der Daten steht. Dies _kann_ durchaus auch eine IP aus dem privaten Bereich sein, auf die man im Internet keinerlei direkten Zugriff hat (und die deshalb verhältnismäßig wenig bringt).

          Schau Dir dazu mal an, wie die Leute von php.net das loesen: http://cvs.php.net/co.php/phpweb/include/ip-to-country.inc?login=2&r=1.19, ganz unten, Funktion "i2c_realip()".

          Da ist keine Hexerei bei: Es werden die Angaben aus HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR und REMOTE_ADDR ausgewertet, wobei eine gewisse Prioritätenliste beachtet wird.

          Das _garantiert_ aber trotzdem _nicht_, dass man außer REMOTE_ADDR noch irgendwelche anderen Adressen erfährt.

          - Sven Rautenberg

          --
          ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
          1. Hallo Sven,

            Nein, das ist absolut unmöglich. In REMOTE_ADDR steht _immer_ die IP-Adresse des anfragenden Internet-Gerätes drin, an die auch die Antwort geschickt werden muß. Das ist, wenn Proxies oder Gateways eingesetzt werden, eben deren Adresse.

            Richtig - ein Denkfehler meinerseits, entschuldigung, mea culpa ;)

            Schau Dir dazu mal an, wie die Leute von php.net das loesen: http://cvs.php.net/co.php/phpweb/include/ip-to-country.inc?login=2&r=1.19, ganz unten, Funktion "i2c_realip()".

            Da ist keine Hexerei bei: Es werden die Angaben aus HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR und REMOTE_ADDR ausgewertet, wobei eine gewisse Prioritätenliste beachtet wird.

            Ja, aber warum sollte ich das Rad neu erfinden, wenn ich mit einem Link auf einen Ansatz verweisen kann?

            Das _garantiert_ aber trotzdem _nicht_, dass man außer REMOTE_ADDR noch irgendwelche anderen Adressen erfährt.

            Das habe ich auch nicht behauptet. Es sollte vielmehr ein Ansatz sein, an die IP-Adresse heranzukommen - eine zu 100% funktionierende Loesung gibt es dafuer ohnehin nicht.

            Beste Gruesse

            Jan