Max: Rechnername herausfinden

Hallo,

ist es irgendwie mit php oder mit einer andere  Programmiersprache möglich den Rechnernamen des Client PCs, der auf meine Homepage geht, anzuzeign? Ich habe schon gegoogled doch ich finde nix. Ich frage mich nähmlich, wie das www.wieistmeineip.de gemacht hat.

Gruß
Max

  1. Hi Max,

    ist es irgendwie mit php oder mit einer andere  Programmiersprache möglich den Rechnernamen des Client PCs, der auf meine Homepage geht, anzuzeign?

    Probier mal die Funktion gethostbyaddr() aus, wenn ich dich richtig verstanden habe sollte das dein Problem lösen.

    MfG, Dennis.

    1. Hallo Dennis,

      ist es irgendwie mit php oder mit einer andere  Programmiersprache möglich den Rechnernamen des Client PCs, der auf meine Homepage geht, anzuzeign?

      im Normalfall nicht.

      Probier mal die Funktion gethostbyaddr() aus, wenn ich dich richtig verstanden habe sollte das dein Problem lösen.

      Wieso? Wie kann ein Aufruf von gethostbyaddr() auf irgendeinem Server im wilden Internet den Namen, der zu 172.16.2.120 (meine derzeitige IP-Adresse) gehört, herausfinden? Man kriegt vielleicht den Namen, den der Provider seinen öffentlichen IP-Adressen verpasst, heraus - sonst nichts. Und der ist bei der Vielzahl der über DHCP vergebenen öffentlichen IP-Adressen belanglos.

      Die vom OP angegebene Webseite hat es jedenfalls nicht geschafft, meine private IP-Adresse und den Namen meines Clients herauszufinden :-)

      Freundliche Grüße

      Vinzenz

      1. Hi Vinzenz,

        Man kriegt vielleicht den Namen, den der Provider seinen öffentlichen IP-Adressen verpasst, heraus - sonst nichts.

        Ich denke aber genau das wollte der OP ;-) Das er natürlich nicht meine interne IP rausfinden kann (bei mir 192.168.1.12) ist ja logisch, wenn er die hätte könnte er damit aber auch gar nichts anfangen *g*

        MfG, Dennis.

      2. Hallo Vinzenz,

        Die vom OP angegebene Webseite hat es jedenfalls nicht geschafft, meine private IP-Adresse und den Namen meines Clients herauszufinden :-)

        logisch, das wäre ja noch schöner!  ;-)
        Aber gerade diese Zusammenhänge (private vs. öffentliche IP, interner Rechnername vs. providerseitiger Hostname) sind für Laien oft schwer zu durchschauen. Die immer wieder gestellten Fragen in der Art zeigen das.

        Schönen Sonntag noch,
         Martin

        --
        Heutzutage gilt ein Mann schon dann als Gentleman, wenn er wenigstens die Zigarette aus dem Mund nimmt, bevor er eine Frau küsst.
          (Barbra Streisand, US-Schauspielerin)
    2. Hallo Dennis,

      habe jetzt folgendes:

      <?php
          $uip  = $_SERVER['SERVER_ADDR'];
          $host = gethostbyaddr($uip);
          print $host;
      ?>

      Doch wenn ich das Script aufrufe kommt folgendes:

      Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address in /xxx/xxx/xxx/test.php on line 3

      Ich weis nicht ob ihr mich richtig verstanden habt. Ich möchte, dass dann dort folgendes steht: blablabla.dip.t-dialin.net.

      1. Hi Max,

        $uip  = $_SERVER['SERVER_ADDR'];

        Hier liegt der Hund begraben - in SERVER_ADDR steht wie unschwer zu denke die Adresse des Servers, du willst aber doch die vom Client nehmen, wenn ich dich richtig vestanden habe, oder? ;-)

        Also: $uip = $_SERVER['REMOTE_ADDR'];

        Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address in /xxx/xxx/xxx/test.php on line 3

        Warum allerdings die IP aus $_SERVER['SERVER_ADDR'] nicht gültig ist, ist mir auch ein Rätsel...

        MfG, Dennis.

        1. Hallo Dennis,

          vielen vielen Dank. Es klappt jetzt.

        2. Hallo Dennis,

          Warum allerdings die IP aus $_SERVER['SERVER_ADDR'] nicht gültig ist, ist mir auch ein Rätsel...

          weil die in $_SERVER[] nicht existiert - warum auch immer.

          Ciao,
           Martin

          --
          Es sagte...
          ein korpulenter Lehrer zu einem Schüler, der ihn ein Fass genannt hatte: "Nein. Ein Fass ist von Reifen umgeben, ich dagegen von Unreifen."
          1. Hallo Martin.

            Warum allerdings die IP aus $_SERVER['SERVER_ADDR'] nicht gültig ist, ist mir auch ein Rätsel...

            weil die in $_SERVER[] nicht existiert - warum auch immer.

            Welcher Stuss steht denn da in der deutschen Fassung dieser Handbuchseite?
            In der englischen Fassung wird SERVER_ADDR erwähnt.

            Einen schönen Sonntag noch.

            Gruß, Ashura

            --
            sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
            „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
            [HTML Design Constraints: Logical Markup]
            1. Hallo,

              weil die in $_SERVER[] nicht existiert - warum auch immer.
              Welcher Stuss steht denn da in der deutschen Fassung dieser Handbuchseite?
              In der englischen Fassung wird SERVER_ADDR erwähnt.

              mir war auch, als hätte ich das schon gelesen, ich hab nur reflexartig noch mal in der Doku nachschauen wollen, bevor ich Unsinn verzapfe. Dass die deutsche Fassung hier offensichtlich unvollständig ist, konnte ich nicht ahnen.
              Noch viel weniger verstehe ich aber, warum ich von http://www.php.net/ immer wieder mal auf die deutsche Version verwiesen werde (aber nur manchmal), obwohl mein Browser ganz klar sagt, dass er Englisch bevorzugt.

              Ciao,
               Martin

              --
              Lache, und die Welt wird mit dir lachen.
              Schnarche, und du schläfst allein.
              1. Hi Martin,

                Noch viel weniger verstehe ich aber, warum ich von http://www.php.net/ immer wieder mal auf die deutsche Version verwiesen werde (aber nur manchmal), obwohl mein Browser ganz klar sagt, dass er Englisch bevorzugt.

                Möglicherweise hast du ein Cookie gesetzt, welches PHP.net mitteilt, dass du Deutsch bevorzugst - du kannst das unter My PHP.net einstellen.

                MfG, Dennis.

                1. Hallo Dennis,

                  Möglicherweise hast du ein Cookie gesetzt, welches PHP.net mitteilt, dass du Deutsch bevorzugst

                  guter Gedanke - aber nicht zutreffend. Die dürfen bei mir keine Cookies setzen, das akzeptiere ich nur von ein paar wenigen Sites, die ohne nicht funktionieren. Und selbst wenn, hätte ich sicher nie eingestellt, dass ich Deutsch bevorzuge. ;-)

                  Ciao,
                   Martin

                  --
                  Denken ist wohl die schwerste Arbeit, die es gibt. Deshalb beschäftigen sich auch nur wenige damit.
                    (Henry Ford, amerikanischer Industriepionier)
              2. echo $begrüßung;

                weil die in $_SERVER[] nicht existiert - warum auch immer.
                Welcher Stuss steht denn da in der deutschen Fassung dieser Handbuchseite?
                In der englischen Fassung wird SERVER_ADDR erwähnt.

                mir war auch, als hätte ich das schon gelesen, ich hab nur reflexartig noch mal in der Doku nachschauen wollen, bevor ich Unsinn verzapfe. Dass die deutsche Fassung hier offensichtlich unvollständig ist, konnte ich nicht ahnen.

                Habt ihr etwa den sowohl auf der englischen als auch auf der deutschen Seite vorhandenen Satz im einleitenden Text über der Aufzählung überlesen?

                "You may or may not find any of the following elements in $_SERVER."
                  "Möglicherweise finden Sie das eine oder andere der folgenden Elemente nicht in $_SERVER."

                Der Grund ist, dass diese Angaben vom Server geliefert werden. Und wenn er das aus diversen Gründen (CGI vs. Modul ist einer davon; IIS vs. Apache vs. ... ein weiterer) nicht macht, dann gibt es den Eintrag nicht. Außerdem kann es auch noch mehr als die im Handbuch erwähnten Einträge geben.

                echo "$verabschiedung $name";

          2. Hi Der,

            weil die in $_SERVER[] nicht existiert - warum auch immer.

            Hm? Auszug aus der Ausgabe von phpinfo()

            _SERVER["SERVER_ADDR"]        213.131.235.xx
              _ENV["SERVER_ADDR"]         213.131.235.xx

            PHP 4.4.1 / CGI - obs daran liegt?

            Siehe auch diesen Kommentar.

            MfG, Dennis.

      2. Hallo Max,

        <?php
            $uip  = $_SERVER['SERVER_ADDR'];
            $host = gethostbyaddr($uip);
            print $host;
        ?>

        Warning: gethostbyaddr(): Address is not a valid IPv4 or IPv6 address in /xxx/xxx/xxx/test.php on line 3

        das müsste eigentlich schon in der ersten Zeile eine Warnung geben, weil $_SERVER['SERVER_ADDR'] nicht existiert. Und mal ehrlich, die IP-Adresse des Servers willst du ja auch gar nicht wissen, sondern die des anfragenden Clients, oder? Also $_SERVER['REMOTE_ADDR'].

        Ich weis nicht ob ihr mich richtig verstanden habt. Ich möchte, dass dann dort folgendes steht: blablabla.dip.t-dialin.net.

        Doch, das ist schon klar. Die weitere Diskussion ging nur darum, dass dies nicht der Rechnername ist, den der Anwender für seine Kiste festgelegt hat.

        So long,
         Martin

        --
        Das Gehirn ist schon eine tolle Sache: Es fängt ganz von allein an zu arbeiten, wenn man morgens aufsteht, und hört erst damit auf, wenn man in der Schule ankommt.
          (alte Schülererkenntnis)
        1. echo $begrüßung;

          $uip  = $_SERVER['SERVER_ADDR'];
          das müsste eigentlich schon in der ersten Zeile eine Warnung geben, weil $_SERVER['SERVER_ADDR'] nicht existiert.

          Da gibt es "nur" eine Notiz, und diese Notiz-Meldungen sind meistens ausgeschaltet. Deshalb wie so oft die Empfehlung, beim Entwickeln von PHP-Anwendungen das error_reporting auf E_ALL zu setzen, damit einem solche Fehlermeldungen auch angezeigt werden.

          echo "$verabschiedung $name";