Sebastian Salzgeber: IP von Localhost herausfinden

Hallo

Ich komme irgendwie nicht weite rund brauche Hilfe.

Folgendes:
Ich habe mir auf dem Notebook ein Webserver installiert der von aussen erreichbar ist. Ich möchte jetzt verifizieren ob ich eine Seite von meinem Notebook aus öffne (auf dme der Webserver ja läuft) oder einem externen rechner. Wenn ich nämlich von meinem Notebook aus darauf zugreife, möchte ich direkt zu einer admin-seite kommen wo ich zeug einrichten kann.

Über folgendes Problem komme ich nicht hinweg:

Mein Notebook bekommt eine dynamische IP aus dem Netzwerk (nachfolgend 192.168.1.6). Surfe ich mit dem Notebook nun auf 192.168.1.6 sehe ich folgendes

  
echo $_SERVER['REMOTE_ADDR']." | ".$_SERVER['HTTP_HOST'];  
//Gibt aus: 192.168.1.6 | 192.168.1.6  

Soweit so gut. Die Host-Adresse ist gleich der Remote-Adresse. Ich scheine vom Notebook aus zuzugreifen (oder habe ich hier schon eine Sicherheitslücke?)

Am Rechner ergäbe sich folgendes Bild:

  
echo $_SERVER['REMOTE_ADDR']." | ".$_SERVER['HTTP_HOST'];  
//Gibt aus: 192.168.1.17 | 192.168.1.6  

Die Rometoe-Adresse ist nicht gleich der Host-Adresse. Es scheint ein externer zugriff zu sein (also keine Adminseite anzeigen).

Mein Problem ist aber, dass ich mir am Notebook nicht immer erst die IP die ich bekommen haben anschauen will um dann im Browser diese IP einzutippen sondern am libesten auf dem Desktop natürlich ein Link hätte. Ich ahbe daher eine Verknüpfung angelegt die auf "http://localhost" verweist. Damit passiert aber folgendes:

  
echo $_SERVER['REMOTE_ADDR']." | ".$_SERVER['HTTP_HOST'];  
//Gibt aus: 127.0.0.1 | localhost  

Das veruwndert auch nicht wirklich. Dennoch würd eich gerne trotzdem über localhost die Seite im Browser öffnen und dennoch wissen wie die lokale IP ist. Wie kann man das herausfinden?

Ich habe viele umwege über $_SERVER['HTTP_CLIENT_IP'] und $_SERVER['HTTP_X_FORWARDED_FOR'] probiert. Auch gethostbynamel('localhost') was aber (natürlich) mir wieder nu 127.0.0.1 zurückgab.

Weiss jemand Rat?

Grüße
Sebastian

  1. Moin!

    Das veruwndert auch nicht wirklich. Dennoch würd eich gerne trotzdem über localhost die Seite im Browser öffnen und dennoch wissen wie die lokale IP ist. Wie kann man das herausfinden?

    <?php
    print "<pre>";
    echo ifconfig;
    print "<br>";
    echo ipconfig;
    ?>

    (Ich weiß, diese Antwort ist schlecht und wird nicht gefallen! - Das soll sie aber ausdrücklich nicht.)

    Oder Du setzt in der .htaccess eine Umleitung, damit Dein Rechner immer über den hostname, der nicht "localhost" ist, aufgerufen wird.

    Oder Du passt, das dürfte der beste Weg sein, einfach Deine Verknüpfung an. Du machst nämlich etwas und wunderst Dich, dass Du das richtige Ergebnis bekommst.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Und du willst mir aber auch nicht verraten wie du es lösen würdest, wenn du auf localhost bist, herauszubekommen welche IP man im lokalen Netz hat, oder?

      1. Und du willst mir aber auch nicht verraten wie du es lösen würdest, wenn du auf localhost bist, herauszubekommen welche IP man im lokalen Netz hat, oder?

        hi hast du schon ipconfig /all mal gescheckt
        local host ip ist eingentlich immer 127.0.0.0

        normaler weise läuft das doch über dyndns? Dort legtman ein konto an das die wechlsende ip vom provider  in ein feste auf de server von dyn dns abgleicht.
        so greife ich von ausserhalb auf meine router zu. So lauft das eigntlcih auch mit VPN. Hast du teamviewer schon mal probiert?

        lg Gothmod

        1. normaler weise läuft das doch über dyndns? Dort legtman ein konto an das die wechlsende ip vom provider  in ein feste auf de server von dyn dns abgleicht.

          So mache ich das auch wenn ich es händisch machen möchte. Da gehe ich sogar nichtmal über ipconfig in der cmd sondern manchmal auch einfach über die netzwerkinformationen.

          Die sache ist die: Ich will ja gerad enicht jedesmal nachschauen müssen welche IPO mir der DHCP zugewiesen hat. Wenn es wirklich nur händisch und nicht via PHP rauszufinden geht, dann muss ich natürlich fortan immer checken, und dann hädnisch in den brwoser eintippen. Ich dahcte aber ich könnte von 127.0.0.1 irgendwie herausbekommen welche Adresse der DHCP mir lokal gegeben hat.

          Grüße
          Sebastian

          1. Moin!

            Ich dahcte aber ich könnte von 127.0.0.1 irgendwie herausbekommen welche Adresse der DHCP mir lokal gegeben hat.

            Wieso, verdammt, willst das offensichtlich ungeeignetste Mittel verwenden? Fragst Du morgen wie das ausschließlich mit notepad.exe geht oder was? Fragst Du morgen wie man mit einem Hammer schweißt? Mit einer Pinzette Nägel einschlägt, mit Briefmarken Bäume fällt oder mit einem Lutscher Haie lebendig fängt? Ach? Auf so dämliche Ideen würdest Du nicht kommen? Verzeih, aber Deine Fragen erscheinen mir genau so.

            Dein Rechner hat im Netzwerk einen Name. Den kann Du über die Eigenschaften des Arbeitsplatzes herausbekommen. Rufe http://rechnername/sonstwas.php auf. Und gib in dieser "sonstwas.php"  den Inhalt von $_SERVER['SERVER_ADDR'] aus. Fertig!

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix

            1. Nicht wenn es ein iPad ist. Aber schön dass du so besonnen und freundlich reagiert hast. Ich danke dir für deine Zeit.

              Sebastian.

              1. Moin!

                Ich danke dir für deine Zeit.

                Du hattest die Antwort schon um 18:07.

                Nicht wenn es ein iPad ist.

                Ich freue mich wirklich jedes mal, wenn relevante Informationen dann kommen, wenn die Antwort gegeben ist.

                ein iPad

                Ein iPad mit Webserver und PHP? Du willst ja den "localhost" fragen. Wir fangen hier nochmal an. Ich fühle mich verarscht. Deshalb auch die von Dir als "herb" empfundene Antwort.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix

          2. 'ǝɯɐu$ ıɥ

            So mache ich das auch wenn ich es händisch machen möchte. Da gehe ich sogar nichtmal über ipconfig in der cmd sondern manchmal auch einfach über die netzwerkinformationen.

            Hä? Händisch? Bei dydns wird dir das doch gerade erspart, dein besucher gibt einen namen ala demseineseite.dyndns.invalid ein und landet bei dir. du hast ein programm auf deinem compi welches sich automatisch mit dyndns kurzschließt. wo ist das problem?

            ssnɹƃ
            ʍopɐɥs

            --
            !edis gnorw eht morf siht ta gnikool era uoY
            1. Moin!

              wo ist das problem?

              Er bekommt via DynDNS nicht die IP aus dem lokalen Netzwerk sondern die, unter der er im "Internet" erscheint. Das ist (im hier wohl vorliegenden Zweifelsfall) die IP des Routers mit NAT und WLAN. Und das ist jetzt schon die dritte IP.

              Ansonsten möge der Frager mal klarlegen, was er wirklich will.

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix

        2. Hello,

          Und du willst mir aber auch nicht verraten wie du es lösen würdest, wenn du auf localhost bist, herauszubekommen welche IP man im lokalen Netz hat, oder?

          hi hast du schon ipconfig /all mal gescheckt
          local host ip ist eingentlich immer 127.0.0.0

          Das ist Netz des lokalen Hostadapters.
          127.x.x.x ist die sogenannte Loopback-Adresse des Netzwerkadapters. DER (bzw. sein Treiber) ist nämlich dafür zuständig, dass die Pakete den lokalen Host nicht verlassen.

          Und dieser kann dann den gesamten Hostbereich des Netzes wieder umlenken, also von 127.0.0.1 bis 127.255.255.255. Alle Server des Lokalen Hosts können diese Pakete auswerten, sofern sie sie annehmen. Pakete, die mit der Zieladresse 127.255.255.255 gesendet werden, müssten von allen lokalen Servern (also Servern auf dem Lokalen Host) angenommen werden.

          Wenn man nun den Apachen benutzt, kann man über virtual Hosts und Inträge in der lokalen HOSTS-Datei auch mehrere Domains simulieren.

          Wenn der Apache auf eine IP lauschen soll, die nicht zum Netz 127.0.0.0 gehört, man die aber nicht kennt, so muss man eben alle IPs freigeben und die auf 127.0.0.0 umleiten auf eine spezielle Domain, die für alle anderen gesperrt ist.

          Oder man schaut mal, zu welchem Netz der WLAN-Router im Hörsaal gehört. Das wird der ja nicht ändern bei jedem Besuch. Dann kannst Du für alle Anfragen aus diesem Netz ein Listen einrichten und dafür einen virtual Host einrichten. Der virtual Host kann (für PHP) eigene Zugriffsrechte verwalten und dann können die Kumpels eben nur lesen, während Du (über Deine eigene Domain) auch alle Scripte fürs Schreiben zur Verfügung hast.

          Die benötigst Du aber dann ja gar nicht, weil Du die PDFs auch direkt über das Dateisystem ins passende Verzeichnis stellen kannst.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
  2. Hi,

    Mein Problem ist aber, dass ich mir am Notebook nicht immer erst die IP die ich bekommen haben anschauen will um dann im Browser diese IP einzutippen sondern am libesten auf dem Desktop natürlich ein Link hätte. Ich ahbe daher eine Verknüpfung angelegt die auf "http://localhost" verweist. Damit passiert aber folgendes:

    echo $_SERVER['REMOTE_ADDR']." | ".$_SERVER['HTTP_HOST'];
    //Gibt aus: 127.0.0.1 | localhost

    
    > Das veruwndert auch nicht wirklich. Dennoch würd eich gerne trotzdem über localhost die Seite im Browser öffnen und dennoch wissen wie die lokale IP ist. Wie kann man das herausfinden?  
      
    Was willst du mit der „lokalen IP“?  
      
    Wenn jemand über 127.0.0.1 zugreift, dann ist das der Rechner, auf dem auch der Server läuft.  
      
    Mit mod\_rewrite kannst du REMOTE\_ADDR auswerten, und dann bei 127.0.0.1 auf dein Admin-Interface (intern) umleiten.  
    Damit niemand, der die Adresse des Admin-Interfaces kennt, von außerhalb zugreifen kann, schützt du dieses dann noch mittels Allow/Deny, ebenfalls auf die 127.0.0.1 bezogen.  
      
      
    MfG ChrisB  
      
    
    -- 
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    
    1. Was willst du mit der „lokalen IP“?

      Die Sache ist ja die: Natürlich könnt eich jederzeit über localhost einfahc auf meinen eignen Webserve rzugreifen und mich somit authorisieren. Aber ich müsste dennoch nachsehen wie meine lokale IP ist damit ich meinen komilitonen sagen könnte "Hier geht mal auf IP XXX und zieht euch das PDF". Und ich dahcte es gäbe einee Möglichkeit den Spagat zu machen, dass ich auf der einen Seite immer über localhost auf meinen Webserver komme UND dort auch direkt meine IP im lokalen Netzwerk steht.

      Im Ideafall ist es so: Ich gehe auf localhost und bin an meinem webserver, der sagt mir "HEy Sebastian, du bist gerad eunter der IP XXX für andere zu sehen" und ich sage "Hey Daniel, geh mal auf meinen Webserver" und kann weiss direkt die IP die er eintippen muss ohen dass ich nochmal extra nachschauen muss.

      (Ich glaube das war jetzt doppelt)

      Grüße
      Sebastian

      1. Hallo,

        Die Sache ist ja die: Natürlich könnt eich jederzeit über localhost einfahc auf meinen eignen Webserve rzugreifen und mich somit authorisieren. Aber ich müsste dennoch nachsehen wie meine lokale IP ist damit ich meinen komilitonen sagen könnte "Hier geht mal auf IP XXX und zieht euch das PDF".
        Im Ideafall ist es so: Ich gehe auf localhost und bin an meinem webserver, der sagt mir "HEy Sebastian, du bist gerad eunter der IP XXX für andere zu sehen" und ich sage "Hey Daniel, geh mal auf meinen Webserver" und kann weiss direkt die IP die er eintippen muss ohen dass ich nochmal extra nachschauen muss.

        nein, im Idealfall weist du deinen lokalen DHCP-Server an, an dasselbe Netzwerkgerät immer dieselbe IP-Adresse zu vergeben - was bei den meisten DHCP-Implementierungen sowieso voreingestellt ist. Dann kannst du zu dieser IP-Adresse noch einen festen Namen eintragen (ob über einen lokalen DNS-Server oder "zu Fuß" in der hosts-Datei), und alle können sich freuen.
        Wenn ich es recht überlege - die IP-Adresse ist in einem reinen Windows-Netz eigentlich sogar völlig Banane, wenn du deine Kameraden einfach über den Hostnamen zugreifen lässt. Windows versucht nämlich die Namensauflösung auch noch über Netbios, wenn's über DNS nicht klappt.

        So long,
         Martin

        --
        Eine Nonne kommt in den Himmel. An der Pforte fragt Petrus: "Wer bist du?" - "Ich bin die Braut Jesu." Petrus stutzt einen Moment, ruft dann nach hinten: "He Freunde, habt ihr schon gehört? Der Juniorchef will heiraten!"
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Wenn ich es recht überlege - die IP-Adresse ist in einem reinen Windows-Netz eigentlich sogar völlig Banane, wenn du deine Kameraden einfach über den Hostnamen zugreifen lässt.

          Nur das sich nie in einem Reinen Windows-Netzwerk mich herumtreibe. Manchmal bin ich an der FH und wir im raum haben eben alle eine dynamische IP vom WLAN-Router zugewiesen bekommen.

          Aber danke, wenn es wirklich nicht geht muss ich halt erst die IP mir holen und dann in den brwoser eintippen.

          Grüße
          Sebastian

          1. Hi,

            Nur das sich nie in einem Reinen Windows-Netzwerk mich herumtreibe. Manchmal bin ich an der FH und wir im raum haben eben alle eine dynamische IP vom WLAN-Router zugewiesen bekommen.

            Aber danke, wenn es wirklich nicht geht

            DynDNS wurde ja bereits vorgeschlagen ...

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  3. Hallo Sebastian,

    ich fasse die wichtigsten Informationen dieses Threads zusammen:

    Ich habe mir auf dem Notebook ein Webserver installiert der von aussen erreichbar ist.

    genauer gesagt hast Du eine exotische Kombination: ein iPad (mit unbekanntem Webserver und unbekannter PHP-Version, Jailbreak?), das sich in einem WLAN befinden kann, auf dessen Konfiguration Du keinen Einfluss hast.

    [...] Dennoch würd eich gerne trotzdem über localhost die Seite im Browser öffnen und dennoch wissen wie die lokale IP ist. Wie kann man das herausfinden?

    ob es auf dem iPad mit Deiner Webserver/PHP-Kombination funktioniert, das kann ich nicht nachvollziehen, da ich kein iPad besitze. Das PHP-Handbuch kennt jedoch drei Funktionen, die Dir dabei helfen können:

    # ermittle den lokalen Rechnernamen mit php_uname und dem Parameter 'n'  
    # ermittle aus dem Namen mit gethostbyname die lokale IP-Adresse  
    echo htmlspecialchars([link:http://au2.php.net/manual/en/function.gethostbyname.php@title=gethostbyname]([link:http://au2.php.net/manual/en/function.php-uname.php@title=php_uname]('n')));  
      
    # ab PHP 5.3 ebenfalls möglich:  
    # ermittle den lokalen Rechnernamen mit gethostname()  
    # ermittle aus dem Namen mit gethostbyname() die lokale IP-Adresse  
    echo htmlspecialchars(gethostbyname([link:http://au2.php.net/manual/en/function.gethostname.php@title=gethostname]()));
    

    Sowohl unter einem aktuellen Ubuntu als auch XAMPP 1.7.3 erhielt ich beim Aufruf von http://localhost/myip.php das von Dir gewünschte Resultat, in meinem Fall so etwas wie

    192.168.2.33

    Im übrigen sollte beides auch bei Verwendung des PHP-CLI wie gefordert funktionieren (nicht getestet).

    Freundliche Grüße

    Vinzenz, der diesen Beitrag hauptsächlich fürs Archiv verfasst hat.

    1. Moin!

      Sowohl unter einem aktuellen Ubuntu als auch XAMPP 1.7.3 erhielt ich beim Aufruf von http://localhost/myip.php das von Dir gewünschte Resultat, in meinem Fall so etwas wie

      192.168.2.33

      Ich nicht. Ich bekomme 127.0.0.1. Grund ist wohl, dass diese IP für den Hostname in /etc/hosts hinterlegt ist.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      1. Hallo,

        Sowohl unter einem aktuellen Ubuntu als auch XAMPP 1.7.3 erhielt ich beim Aufruf von http://localhost/myip.php das von Dir gewünschte Resultat, in meinem Fall so etwas wie

        192.168.2.33

        Ich nicht. Ich bekomme 127.0.0.1. Grund ist wohl, dass diese IP für den Hostname in /etc/hosts hinterlegt ist.

        ich glaube kaum, dass der OP eine für sein Vorhaben kontraproduktive Maßnahme, von der er überhaupt nichts hätte (außer sein Vorhaben zu sabotieren), träfe.

        Freundliche Grüße

        Vinzenz