Marc Denzer: IP Adresse durch JavaScript

Guten Tag,

ich hätte eine Frage zu JavaScript:

Ist es möglich durch JavaScript die IP Adresse des jenigen heraus zu bekommen, der die Internetseite besucht? Ich möchte bei einem Formular auf meiner Homepage (sichtbar oder unsichtbar) die IP Adresse des Absenders mitsenden um Missbrauch zu verhindern. Mein Provider hat mir bestätigt, dass es mit JavaScript möglich ist, konnte mir aber den genauen Befehl nicht sagen, deshalb wende ich mich nun an Sie.

Vielen Dank für Ihre Hilfe

Marc Denzer

  1. nich mit javascript.

    1. nich mit javascript.

      Hallo Alle,

      nicht direkt mit Javascript, aber durch die Hintertür:

      Man richtet ein Frameset ein. Eins der Frames ist so klien, dann man es nicht sehen kann. Jetzt löst man ein Submit an irgendeinen netten Server auf Dieser Welt aus Target das unsichtbare Frame). Der schickt die gewünschten Daten zurück. In dem netten Frameset steht irgendwas mit onLoad="    "

      Die IP steht nun in der Seite zur Verfügung.

      Der Swerver müßte nur so nett sein folgendes Frame zurückzugeben:

      <!-- ----getIP.php--- -->
      <html>
      <head>
      </head>
      <body>
      <?
        echo "<form action='#' name='userData'>";
        echo "<input type='hidden' name='IP' ID='IP' value='".$REMOTE_ADDR."'>";
        echo "</form>;
      ?>
      </body>
      </html>

      Den Dienst findest Du ab sofort unter http://bitworks.de/tools/getIP.php

      Vielleicht sollten wir Antje bitten, mal den JavaScript-Teil dazu zu schreiben. Das raff ich noch nicht, bestenfalls für den M$IE...

      Gruß

      Tom

      1. Hi, kleine Anmerkung am Rande:

        <!-- ----getIP.php--- -->

        Das ist illegal. Ein Kommentar endet mit --, also wird das hier einen Validierungsfehler erzeugen. Andere Zeichen wie * oder ~ schmücken genauso schön, nimm doch diese.

        1. Hi, kleine Anmerkung am Rande:

          <!-- ----getIP.php--- -->
          Das ist illegal. Ein Kommentar endet mit --, also wird das hier einen Validierungsfehler erzeugen. Andere Zeichen wie * oder ~ schmücken genauso schön, nimm doch diese.

          Tut mir leid, das verstehe ich jetzt nicht.

          Kommentaranfang <!--
          Kommentarende   -->

          Oder?

          <!-- Inhalt der Datei -->

          Das stammt aus SelfHTML
          Mit meiner Schreibweise habe ich noch nie Fehler bekommen.

          Allerdings würde ich sie auch gerne vermeiden

          Gruß

          Tom

      2. Hallo,

        nicht direkt mit Javascript, aber durch die Hintertür:

        Man richtet ein Frameset ein. Eins der Frames ist so klien, dann man es nicht sehen kann. Jetzt löst man ein Submit an irgendeinen netten Server auf Dieser Welt aus Target das unsichtbare Frame). Der schickt die gewünschten Daten zurück. In dem netten Frameset steht irgendwas mit onLoad="    "

        Dazu braucht man kein Frameset und kein Formular. Probiere es mal so:

        js_ip.php

        <?php

        Header("Content-type: text/javascript");
        $ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
        print "var ip="$ip";\n";

        ?>

        function getIP()
        {
          alert("IP: "+ip);
          // oder document.write("IP: "+ip);
        }

        Testdokument:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <title>Test by TM 03/02</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script language="JavaScript" src="http://localhost/js_ip.php" type="text/javascript"></script>
        </head>
        <body onload="getIP()">
        </body>
        </html>

        MfG, Thomas

        1. Hallo,

          nicht direkt mit Javascript, aber durch die Hintertür:

          Man richtet ein Frameset ein. Eins der Frames ist so klien, dann man es nicht sehen kann. Jetzt löst man ein Submit an irgendeinen netten Server auf Dieser Welt aus Target das unsichtbare Frame). Der schickt die gewünschten Daten zurück. In dem netten Frameset steht irgendwas mit onLoad="    "

          Dazu braucht man kein Frameset und kein Formular. Probiere es mal so:

          js_ip.php

          <?php

          Header("Content-type: text/javascript");
          $ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
          print "var ip="$ip";\n";

          ?>

          function getIP()
          {
            alert("IP: "+ip);
            // oder document.write("IP: "+ip);
          }

          Testdokument:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Test by TM 03/02</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          <script language="JavaScript" src="http://localhost/js_ip.php" type="text/javascript"></script>
          </head>
          <body onload="getIP()">
          </body>
          </html>

          MfG, Thomas

          Hallo Thomas, machen wir doch das Thomas-Forum auf :-)

          heißt das, das man dem Header-Befehl in ein vorhandenes Formular Daten nachladen kann ohne, dass das Formular auf dem Bildschirm zuckt?

          Allerdings kann man nicht den Localhost bemühen, weil auf den Clients der Leute üblicherweise kein PHP läuft. Was müsste man jetzt also wo unterbringen, dass es klappt?

          Gruß

          Tom

          1. Hallo,

            heißt das, das man dem Header-Befehl in ein vorhandenes Formular Daten nachladen kann ohne, dass das Formular auf dem Bildschirm zuckt?

            Verstehe ich nicht.
            Es funktioniert doch wie von mir beschrieben.

            Allerdings kann man nicht den Localhost bemühen, weil auf den Clients der Leute üblicherweise kein PHP läuft. Was müsste man jetzt also wo unterbringen, dass es klappt?

            Zum lokalen Testen habe ich http://localhost/... verwendet und es kommt 127.0.0.1 zurueck. Man braucht natuerlich einen externen Webserver mit PHP-Unterstuetzung, also z. B.:
            http://www.adres.se/.../js_ip.php

            MfG, Thomas

            1. Hallo,

              heißt das, das man dem Header-Befehl in ein vorhandenes Formular Daten nachladen kann ohne, dass das Formular auf dem Bildschirm zuckt?

              Verstehe ich nicht.
              Es funktioniert doch wie von mir beschrieben.

              Allerdings kann man nicht den Localhost bemühen, weil auf den Clients der Leute üblicherweise kein PHP läuft. Was müsste man jetzt also wo unterbringen, dass es klappt?

              Zum lokalen Testen habe ich http://localhost/... verwendet und es kommt 127.0.0.1 zurueck. Man braucht natuerlich einen externen Webserver mit PHP-Unterstuetzung, also z. B.:
              http://www.adres.se/.../js_ip.php

              Hallo Thomas,

              Das ist ja genial,

              muss ich mich unbedingt noch mit beschäftigen.

              Ich habe das Server-Script in der alert-Variante unter bitworks.de/tools/alertIP.php abgelegt und mit der Document-Variante unter bitworks.de/tools/docwriteIP.php

              Nun würde es mich interessieren, ob ich auf diese Weise auch noch Werte vom Server übertragen kann in ein vorhandenes Dokument.

              Sodass man die dann darin abfragen kann

              Grüße aus BS

              Tom

              1. Hallo,

                Nun würde es mich interessieren, ob ich auf diese Weise auch noch Werte vom Server übertragen kann in ein vorhandenes Dokument.

                Praktisch alles, was man mittels $HTTP_SERVER_VARS[] bzw. neuer $_SERVER[] so abfragen kann, siehe: http://www.php.net/manual/en/reserved.variables.php#reserved.variables.server.

                MfG, Thomas

                1. Hallo,

                  Nun würde es mich interessieren, ob ich auf diese Weise auch noch Werte vom Server übertragen kann in ein vorhandenes Dokument.

                  Praktisch alles, was man mittels $HTTP_SERVER_VARS[] bzw. neuer $_SERVER[] so abfragen kann, siehe: http://www.php.net/manual/en/reserved.variables.php#reserved.variables.server.

                  Hai Thomas,

                  da hast Du mich jetzt leicht missverstanden.

                  Angenommen, ich habe ein Formular mit input-Feldern in einem Frame und löse ein submit() aus, kann ich dann in die vorhandene Site noch Werte holen vom Server, z.B.mit einer Datenbankabfrage?

                  Ich will nur nicht die ganze Site oder das Frame neu laden.

                  Die Daten sollen dann nur als JavaScript-Variablen im Dokument vorhanden sein.

                  Gruß

                  Tom

        2. Hallo nochmals,
          vielen Dank für die Hilfe, ich habe die beiden Quelltexte (js_ip.php und das HTML) Dokument genau so übernommen, bekomme beim Ausführen allerdings immer den Fehler "JavaScript: Primärausdruck erwartet", wobei dieser Teil im Quelltext der js_ip.php Datei markiert ist:
          <?php
          Header("Content-type: text/javascript");
          $ip=$HTTP_SERVER_VARS["REMOTE_ADDR"];
          print "var ip="$ip";\n";
          ?>

          Die passiert in drei von mir getesteten Browsern.

          Vielen Dank

          MARC

  2. Hallo,

    Ist es möglich durch JavaScript die IP Adresse des jenigen heraus zu bekommen, der die Internetseite besucht? Ich möchte bei einem Formular auf meiner Homepage (sichtbar oder unsichtbar) die IP Adresse des Absenders mitsenden um Missbrauch zu verhindern. Mein Provider hat mir bestätigt, dass es mit JavaScript möglich ist, konnte mir aber den genauen Befehl nicht sagen, deshalb wende ich mich nun an Sie.

    Was ist denn das für ein Provider, der sowas behauptet?
    In JavaScript ist es nicht möglich die IP auszulesen.
    Aber sobald das Formular an ein Verarbeitungs Script geschickt wird, kann dieses die IP ermitteln.

    z.B. ein PHP Script, oder Perl, oder ...

    Gruß

    ueps

    1. Hallo,

      Ist es möglich durch JavaScript die IP Adresse des jenigen heraus zu bekommen, der die Internetseite besucht? Ich möchte bei einem Formular auf meiner Homepage (sichtbar oder unsichtbar) die IP Adresse des Absenders mitsenden um Missbrauch zu verhindern. Mein Provider hat mir bestätigt, dass es mit JavaScript möglich ist, konnte mir aber den genauen Befehl nicht sagen, deshalb wende ich mich nun an Sie.

      Was ist denn das für ein Provider, der sowas behauptet?
      In JavaScript ist es nicht möglich die IP auszulesen.
      Aber sobald das Formular an ein Verarbeitungs Script geschickt wird, kann dieses die IP ermitteln.

      z.B. ein PHP Script, oder Perl, oder ...

      Gruß

      ueps

      Strato meinte, dass dies mit JavaScript möglich wäre, nun stelle ich fest, dass dies nicht funktioniert, habe aber herausgefunden, dass es mit java gehen soll, kann mir da jemand helfen?

      Vielen Dank

      MARC

  3. Moin!

    Ist es möglich durch JavaScript die IP Adresse des jenigen heraus zu bekommen, der die Internetseite besucht? Ich möchte bei einem Formular auf meiner Homepage (sichtbar oder unsichtbar) die IP Adresse des Absenders mitsenden um Missbrauch zu verhindern. Mein Provider hat mir bestätigt, dass es mit JavaScript möglich ist, konnte mir aber den genauen Befehl nicht sagen, deshalb wende ich mich nun an Sie.

    Naja, daß man mit Javascript nicht direkt die IP herausfinden kann, und weiterhin daß Strato einen Müllsupport hat, der auch nichts weiß, ist mittlerweile geklärt.

    Die spannende Frage ist aber: Du willst Mißbrauch verhindern. Das ist ja im Prinzip sehr schön, aber die Fragen seien gestellt:

    1. Welchen Mißbrauch willst du verhindern?
    2. Wie willst du das verhindern?
    3. Warum glaubst du, daß Javascript da helfen könnte?

    Denk dran: Alles Javascript wird im benutzereigenen Browser ausgeführt. Das bedeutet: Der Benutzer kann das Javascript beliebig manipulieren, um deine Kontrollmechanismen auszuschalten. Solange der Server selbst den Mißbrauch (von dem immer noch nicht bekannt ist, was genau das ist) nicht verhindert, hilft dir dein Javascript und die IP-Adresse garnichts.

    - Sven Rautenberg