Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Land und Umgebung von Besuchern





Frage

Hey, ich bin auf der suche nach einem script oder funktion die mir nicht nur das Land des Homepagebesuchers zeigt sondern auch die Umgebung(also die Stadt oder sowas). Ich glaube das könnte man über IP machen. Bin mir aber nicht sicher. Vielleicht gibt es ja auch ne andere Möglichkeit. danke

Antwort 1 von Nessus

Hi,

es gibt leider keine wirklich funktionierende Lösung. Spätestens wenn jemand über einen Proxy surft, geht das nicht mehr.

Nessus

Antwort 2 von Xavier

Die einzigen mir bekannten Informationen, die man über einen User erfahren kann, sind:
  • IP
  • Referrer
  • Useragent und daraus die folgenden Punkte
  • Browser (Name + Version)
  • OS (Name + Version)
  • eventuell Land
  • eventuell Sprache

    eventuell per Javascript
  • Bildschirmauflösung
  • Farbtiefe

    Über die IP kann man nicht auf das Herkunftsland, geschweige denn Stadt schließen.
    Letzteres ist meines Wissens überhaupt nicht möglich.

  • Antwort 3 von halfstone

    Hi Sam_L,

    was du suchst ist Geotargeting.

    Es gibt einige Anbieter von Informationen woher eine bestimmte IP Nummer kommt ( http://www.maxmind.com/).

    Neotrace ist ein Programm, das nach IP Nummern Orten zuordnet.

    Die ganze Sache ist aber Prinzipbedingt nicht 100%ig.
    Eine IP kann durchaus auch woanders herkommen als diese Datenbanken es angeben.

    Proxys, manuell angewählte Einwahlpunkte der Provider... machen es in einigen Fällen unmöglich die IP zu lokalisieren.

    Gruß Fabian

    Antwort 4 von Sam_L

    Jepp genau sowas suche ich.
    jetzt müßte es nur noch kostenlos sein.
    Ich bin in google auf der suche gewesen.
    leider habe ich außer ner datenbank für ip-länder nix gefunden.

    Ich suche weiter.
    vielleicht weiß einer von euch ein paar adressen.


    Danke für die Hilfe!!!

    Antwort 5 von Sam_L

    Also ich habe dann doch eine seite mit Geotracking gefunden.
    Leider ist es nicht so dass was ich mir gedacht habe.
    Vielleicht kennt von euch einer ne bessere Seite, variante oder Möglichkeit.

    Bis dahin muß das hier reichen:
    http://www.geobytes.com/IpLocator.htm?GetLocation&ipaddress=<eureIP>


    gruß

    Antwort 6 von Xavier

    Cool!

    Man lernt nie aus!
    Da mich das auch interessiert habe ich mal gegooglet:
    http://www.xpenguin.com/plot.php
    kann man auch herunterladen

    Antwort 7 von Sam_L

    Hmm,
    sieht zwar gut aus.
    Funktioniert aber nicht wirklich genau.
    Er meint ich würde aus Amsterdam kommen, dabei ist mein Knotenpunkt hier in D. in der nähe von Koblenz.

    Naja er ist ja auch erst im Aufbau. Vielleicht verbessert er es ja noch.


    gruß

    Antwort 8 von Nicolas

    naja sieht ja lustig aus aber in der FAQ steht das netgeo die Position des ISP liefert, und wenn man sich dann die rote Warnmeldung bei denen auf der HP anschaut wird einem schnell klar warum da bei mir "located in Marina Del Rey, California, United States." steht obwohl es eindeutig bei ripe nachzuschauen ist das meine IP zu einem ISP aus DE gehört

    Antwort 9 von Xavier

    Ok, dann nochmal mit geobytes:
    Auf http://geobytes.com/GeoDirection.htm erfährt man, wie man per JS bestimmte Daten, wie z.B. Country, City, Currency,... als JS-Variablen erhalten kann.
    Mit diesen kann man anschliessend arbeiten und diese z.B. per PHP in eine DB speichern.
    So mache ich das jetzt:
    erster Besuche eines Users auf meiner Seite -> Script wird aufgerufen-> Daten zum User in die DB
    weiterer Besuch-> Script wird nicht mehr aufgerufen.

    Kommt aber immer drauf an, was du mit den Daten machen möchtest. Ich persönlich möchte das für einen Chatbot machen, der dann automatisch weiß, wo der User herkommt. Daher ist das beim ersten Aufruf noch nicht relevant.
    Wenn du das vor dem ersten (richtigen) Aufruf der Seite wissen möchtest, um den User auf eine bestimmte Seite zu leiten, dann lies die Beschreibung, die über den Link erreichbar ist.

    Interessantes Thema...

    Antwort 10 von Sam_L

    Hmm stimmt das ist eigentlich ne ganz gute funktion kenne mich nur leider nicht wirklich gut mit js aus.

    Wie kann ich denn die beiden Variablen in eine datenbank schreiben?

    Ich habe es versucht aber irgendwie bekomme ich die JS variablen nicht zu einer PHP variable zusammen.


    grml

    Antwort 11 von Xavier

    Erstmal muss auf dem Client JS aktiviert sein, damit das funzt.
    Dann brauchst du zwei Dateien: Eine, die die eigentliche Seite ist und eine, die die Daten bekommt und diese in die DB schreibt. Meine Lösung ist folgende:

    test.php (beliebig erweiterbar)
     
    [...]
    <script language="Javascript" src="http://gd.geobytes.com/gd?variables=GeobytesCountryTitle,GeobytesCity,GeobytesCertainty">
    </script>
    <script language="Javascript" type="text/javascript">
      document.write("<script type=\"text/javascript\" src=\"test2.php?country=" + sGeobytesCountryTitle + "\&city=" + sGeobytesCity + "\&certain=" + sGeobytesCertainty + "\&width=" + screen.width + "\&height=" + screen.height + "\&screen=" + screen.colorDepth + "\"><\/script>");
    </script>
    [...]
    


    test2.php
     
    alert(´<?php
      $country = $_GET[´country´];
      $city = $_GET[´city´];
      $certainty = $_GET[´certain´];
      $width = $_GET[´width´];
      $height = $_GET[´height´];
      $farbtiefe = $_GET[´screen´];
      echo $_GET[´country´] ." ". $_GET[´city´] ." ". $_GET[´certain´] . " " . $_GET[´width´]."*".$_GET[´height´] . "  " . $_GET[´screen´] . "Bit";
    ?>´);
    
    <?php
        mysql_connect("host", "db_user", "passwort");
        $sql = "INSERT INTO test (country, city, certainty, width, height, farbtiefe) VALUES (´$country´, ´$city´, ´$certainty´, ´$width´, ´$height´, ´$farbtiefe´)";
        mysql_db_query("dbname", $sql);
        mysql_close();
    ?>
    


    Erläuterung:
    test.php
    Dies ist ein Auszug, der allerdings auch so funktionieren sollte. Die benötigten Variablen können auf der bereits oben gelinkten Seite nachgelesen und mit denen beliebig erweitert werden. Ich habe noch Auflösung und Farbtiefe mit übergeben - muss man aber nicht ;)
    Die Daten werden an die test2.php weitergegeben. Aber nur, wenn JS aktiviert ist !!!

    test2.php
    Die Daten werden PHP Variablen zugeordnet und in einem JS Alert Fenster ausgegeben (Kann man auch weglassen. War nur zu Testzwecken...).
    anschliessend wird die Verbindung zu DB hergestellt und die Daten in die DB eingefügt. Daten sind zu ändern...

    sql für DB:
    
    CREATE TABLE `test` (
      `country` varchar(20) NOT NULL default ´´,
      `city` varchar(20) NOT NULL default ´´,
      `certainty` int(11) NOT NULL default ´0´,
      `width` int(11) NOT NULL default ´0´,
      `height` int(11) NOT NULL default ´0´,
      `farbtiefe` int(11) NOT NULL default ´0´
    );
     


    Viel Spaß damit!

    Feedback erwünscht ;)

    Antwort 12 von Sam_L

    Wie es gibt keine andere Möglichkeit Variablen weiter zu geben?
    danke für das script!

    Antwort 13 von Xavier

    Mir ist keine andere bekannt. Da JS Clientseitig ist und PHP serverseitig, muss die Variable von JS erst wieder an den Sever geschickt werden. Dies geht entweder so, wie ich es gemacht habe, oder auch mit einem img-tag, dem man als src eine php seite mit per JS angefügten Parametern übergibt.

    Funzt das Script einwandfrei?