Henry: $_SERVER['REMOTE_ADDR'] IP nicht mehr wie gewohnt?

Hallo,

bisher kam ich mit $_SERVER['REMOTE_ADDR'] immer so weit zurecht, dass die IP-Adresse angezeigt wird. Nun aber erhalte ich da was ganz anderes:

2003:dd:df06:1000:fd16:5fd7:b7…usw…

Was hat sich da geändert?

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“

akzeptierte Antworten

  1. Hallo Henry,

    bisher kam ich mit $_SERVER['REMOTE_ADDR'] immer so weit zurecht, dass die IP-Adresse angezeigt wird. Nun aber erhalte ich da was ganz anderes:

    2003:dd:df06:1000:fd16:5fd7:b7…usw…

    du bekommst offensichtlich immer noch eine IP-Adresse - aber halt IPv6.

    Was hat sich da geändert?

    Dein Hoster hat modernisiert. 😉

    Live long and pros healthy,
     Martin

    --
    Fische, die bellen, beißen nicht.
    1. Hallo Der,

      2003:dd:df06:1000:fd16:5fd7:b7…usw…

      du bekommst offensichtlich immer noch eine IP-Adresse - aber halt IPv6.

      wow, so komplex sehen ipv6 aus? War mir gar nicht bewusst, danke.

      Gruss
      Henry

      --
      Meine Meinung zu DSGVO & Co:
      „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
    2. Hallo Der,

      Anbieter wie wieistmeineip.de zeigen mir auch gleichzeitig noch die ip4 an, wie kommen die daran, bzw. gibts da in PHP auch eine Anfragemöglichkeit für?

      Gruss
      Henry

      --
      Meine Meinung zu DSGVO & Co:
      „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
      1. Hallo Henry,

        Anbieter wie wieistmeineip.de zeigen mir auch gleichzeitig noch die ip4 an, wie kommen die daran, bzw. gibts da in PHP auch eine Anfragemöglichkeit für?

        Die greifen aber zu Tricks. Vermutlich bauen die zwei Verbindungen auf, um das herauszufinden: Eine zu einem nur über IPv4 erreichbaren Host und eine zu einem über IPv6-erreichbaren.

        Da Pakete entweder per IPv4 oder per IPv6 übermittelt werden, kennst du somit nicht zwangsläufig auch die jeweils andere Adresse...

        Gruß
        Julius

      2. Hallo Henry,

        ein Webserver lauscht auf eine oder mehrere IP Adressen. Auf diesem Webserver werden 1-N Webs gehostet (das ist IIS-Sprech, der Apache nennt das womöglich anders. Ich hab schon mal was von virtuellen Webs gehört).

        Es ist Aufgabe des Webservers, Anfragen auf bestimmte IP Adressen an bestimmte Webs durchzuleiten und anhand der dortigen Regeln zu beantworten.

        Bei welcher IP eine Anfrage von einem Client (oder remote host) ankommt, hängt an zwei Dingen:

        • an den DNS Einträgen
        • daran, ob der Client IPv4 oder IPv6 spricht

        Der "Client" kann auch, glaube ich, ein Protokollwandler sein, d.h. irgendein Computer im Netz spricht IPv4, aber seine Kommunikation wird unterwegs in IPv6 gewandelt. Aber ich bin nicht ganz sicher, ob das geht.

        Es kann also sein, dass dein Web sowohl Requests bekommt, deren REMOTE_ADDR im IPv4 Format ankommt, als auch Requests im IPv6 Format, wenn der Hoster auf beide Typen von IP lauscht und sie beide an dein Web routet.

        Das kannst Du nur verhindern, in dem Du den Webserver nicht auf IPv6 lauschen lässt. Angesichts der Tatsache, dass IPv4 Adressen eeetwas knapp im Vorrat sind, wäre das nicht die beste Idee.

        Die Seite wieistmeineip dürfte vom Browser aus im Hintergrund eine Ajax-Abfrage machen. Wenn Du wieistmeineip.de via IPv4 abrufst, wird der v4 Server sie so ausliefern, dass sie im Hintergrund noch eine Abfrage bei einem v6 Server macht. Und wenn Du wieistmeineip.de via IPv6 abrufst, wird es umgekehrt passieren. Dadurch kann die Seite beide IP anzeigen.

        Eine alternative Lösung wäre, dass der Server, der den Seitenabruf als erstes bekommt, die REMOTE_ADDR in einem Header, einem Cookie oder in der URL codiert und dann den Request zu dem Server mit der anderen IP-Technik weiterleitet. Der erkennt, dass der andere Server seine Duftmarke gesetzt hat, und kann die Information integrieren.

        Ein Server bekommt jedenfalls nur eine der beiden REMOTE_ADDR Angaben, würde ich behaupten, weil die Kommunikation entweder über v4 oder v6 erfolgt.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo,

          ein Webserver lauscht auf eine oder mehrere IP Adressen. Auf diesem Webserver werden 1-N Webs gehostet (das ist IIS-Sprech, der Apache nennt das womöglich anders. Ich hab schon mal was von virtuellen Webs gehört).

          der korrekte Terminus beim Apachen ist virtuelle Hosts. Aber was mich noch mehr irritiert: Der Begriff Web für eine Website. Ich kannte bisher nur das Web, das die ganze Welt umspannt.

          Der "Client" kann auch, glaube ich, ein Protokollwandler sein, d.h. irgendein Computer im Netz spricht IPv4, aber seine Kommunikation wird unterwegs in IPv6 gewandelt. Aber ich bin nicht ganz sicher, ob das geht.

          Ein Proxy könnte das zum Beispiel tun.

          Es kann also sein, dass dein Web sowohl Requests bekommt, deren REMOTE_ADDR im IPv4 Format ankommt, als auch Requests im IPv6 Format, wenn der Hoster auf beide Typen von IP lauscht und sie beide an dein Web routet.

          Genua. ;-)

          Ein Server bekommt jedenfalls nur eine der beiden REMOTE_ADDR Angaben, würde ich behaupten, weil die Kommunikation entweder über v4 oder v6 erfolgt.

          Eben. Mein Kollege wird mich, je nachdem, woher er kommt, auch entweder in Deutsch oder in Englisch ansprechen; beides gleichzeitig wohl kaum. Aber er könnte während des Gesprächs wechseln, wenn er den Eindruck hat, ich würde die zuerst gewählte Sprache nicht verstehen. Das wiederum ist beim IP nicht vorgesehen.

          Live long and pros healthy,
           Martin

          --
          Fische, die bellen, beißen nicht.
          1. Hallo Martin,

            Der Begriff Web für eine Website.

            ...mag Jargon unserer hausinternen Serveradmins sein. Wenn ich mir so das Admin-Tool vom IIS anschaue, wäre der Begriff wohl eher Site statt Web.

            • Eine Maschine, ein IIS.
            • Im IIS 1-N Sites, mit Bindings an http, https, Ports, Hostnamen, Zertifikaten
            • Eine Site hat einen Root-Ordner und einen Application Pool (= der Prozess, der die Inhalte bereitstellt). Im Application Pool können auch Scripte laufen (ASP oder .net Programme).
            • In der Site kann es virtuelle Ordner geben, die anderswohin mappen
            • In der Site kann es Applications geben, die sowas wie virtuelle Ordner mit eigenem Application Pool sind

            Die Funktionalitäten gibt's garantiert auch alle im Apache, nur unter anderen Namen.

            Rolf

            --
            sumpsi - posui - obstruxi