tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
427
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chris4712 chris4712 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    233
    Abend!

    Ich ermittle mit gethostbyaddr() den Namen eines Surfers.
    Kann nun ein anderer Surfer, der irgendwann die Webseite besucht und zufälliger weise die selbe IP hat auch den selben Namen haben

    Gruß

    Christian
    Geändert von chris4712 (18.11.05 um 22:21 Uhr)
     

  2. #2
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Du meinst doch sicherlich den Hostnamen den der User bei seiner Einwahl zugeteilt bekommt?!
    Bei diesen verhält es sich im grunde wie mit Domains, einer bestimmten IP wird ein bestimmter Hostname zugewiesen.
    Bei meinem ISP ist es deutlich zu erkennen dass der Hostname fest an die IP gebunden ist (die letzten beiden Ziffernblöcke der IP sind Bestandteil des Hostnamens).

    Beispiel (IP und Hostname sind natürlich frei erfunden , jedoch ist der Aufbau der gleiche):
    IP: 123.456.789.012
    Hostname: foo-789-012.bar.com

    Der User (egal welcher) hat zur jeweiligen IP also immer den selben Hostnamen..... es sein denn, der ISP ändert irgend wann mal (aus welchen Gründen auch immer) die Einträge.
    Wie man an meinem Beispiel aber erahnen kann, ist es eher unwahrscheinlich dass die Einträge geändert werden.

    Soweit alles verstanden?

    Gruss Dr Dau
    Geändert von Dr Dau (19.11.05 um 06:09 Uhr)
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  3. #3
    chris4712 chris4712 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    233
    Ah, OK danke für die Info!
    Hab's, dank deiner guten Erklärung, verstanden

    Aber vielleicht hast du eine Idee wie ich dann folgendes Problem löse:
    Ich erstelle eine Statistik in zwei Datenbanken.
    In der einen sind die Seitenaufrufe und eine UserID.
    In der anderen ist wieder die UserID und einige Infos über den User.

    Bei Suchmaschinen oder ähnlichem wird aber leider immer ein neuer Eintrag in die User Tabelle gemacht. So dass Google z.B. 100mal drin steht.

    Hatte nun gehofft dass ich es mit dem Hostnamen lösen kann.

    Aber wie du schon sagtest geht dass ja wohl leider nicht.
    Müsste also mit Cookies arbeiten. Oder?

    Gruß und noch mal Danke!

    Christian
     

  4. #4
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hmm, wirklich verstehen tue ich es nicht was Du da vor hast.
    Was für Infos über die User speicherst Du denn?
    So Sachen wie Referer, User-Agent usw.?
    Oder eher persönlich Sachen wie eMail, Name usw. (z.b. bei einer Registrierung).?

    So weit ich weiss, nehmen Suchmaschinen keine Cookies an..... und auch der normale User wird es sich nicht vorschreiben lassen.

    Sofern dir die Suchmaschinen bekannt sind, kannst Du ja auch durch eine if-Anweisung ausschliessen dass sie mitgelogt werden:
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
     
    $host $_SERVER['REMOTE_ADDR'];
     
    @
    mysql_connect("host""user""pass") or die(mysql_error());
    @
    mysql_select_db("datenbank") or die(mysql_error());
    $result = @mysql_query("SELECT Domain,IP FROM suchmaschinen WHERE Domain='".gethostbyaddr($host)."' OR IP='".gethostbyname($host)."';") or die(mysql_error());
    $row mysql_fetch_array($result);
     
    if(!isset(
    $row['Domain']) OR !isset($row['IP'])) {
         echo 
    "Du kannst in die DB eingetragen werden";
    } else {
         echo 
    "Du kannst NICHT in die DB eingetragen werden.";
    }
    ?>
    else kannst Du auch weg lassen, dass dient jetzt nur zur Veranschaulichung.

    Die Tabelle könnte so aussehen (ich weiss aber nicht ob da auch der richtige Hostname mit bei ist):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    -- 
    -- Datenbank: `datenbank`
    -- 
    -- --------------------------------------------------------
     
    -- 
    -- Tabellenstruktur für Tabelle `suchmaschinen`
    -- 
    CREATE TABLE `suchmaschinen` (
    `ID` int(11) NOT NULL auto_increment,
    `Domain` varchar(255) default NULL,
    `IP` varchar(255) default NULL,
    PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    -- 
    -- Daten für Tabelle `suchmaschinen`
    -- 
    INSERT INTO `suchmaschinen` (`Domain`, `IP`) VALUES ('google.com', '72.14.207.99');
    INSERT INTO `suchmaschinen` (`Domain`, `IP`) VALUES ('google.de', '216.239.57.104');
    Nachteil ist allerdings dass Du alle Suchmaschinen in die Datenbank eintragen müsstest.
    Dazu würde ich den Hostnamen (Domain) UND die IP eintragen.
    Warum? Nun, dann müsste die Suchmaschine einen anderen Hostnamen UND eine andere IP bekommen um wieder mitgelogt zu werden.

    Ein 100%igen Schutz wirst Du wohl nicht bekommen.
    Aber ich denke auf diese Art ist es schon recht sicher..... Du könntest es noch um den User-Agent erweitern, es soll aber auch Suchmaschinen geben die kein User-Agent mitsenden.
    Also am besten ein Mix aus allem machen.
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  5. #5
    chris4712 chris4712 ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    233
    Sorry, hatte ganz übersehen dass du mir noch was geschrieben hattest.


    Vielen Dank.
    Ich denke dass ich auf die Datenbanklösung zurückgreifen werde.
    So als Backup.

    Im Moment habe ich es so gelöst dass ich abfrage ob der User Cookies erlaubt.
    Wenn ja und er noch keins hat ist es ein neuer User.
    Wenn ja und er hat eins, ist es ein bekannter User.
    Wenn nein, aber die IP in den letzten zwei Stunden schon mal da war, wird davon ausgegangen dass es derselbe User wieder ist.

    Als nächstes werde ich dann deinen Vorschlag mit der Suchroboter Datenbank mal in Angriff nehmen.
    Vielleicht gibt's ja schon eine fertige Datenbank irgendwo

    Also noch mal Danke für deine Mühe!

    Gruß

    Christian
     

Ähnliche Themen

  1. Rechner eindeutig identifizieren
    Von benhaze im Forum Java
    Antworten: 7
    Letzter Beitrag: 06.11.08, 13:17
  2. gethostbyaddr Ergebnisauflistung
    Von Robert Steichele im Forum PHP
    Antworten: 1
    Letzter Beitrag: 26.12.05, 08:57
  3. Warenkorb eindeutig zuweisen
    Von Smeagel im Forum PHP
    Antworten: 15
    Letzter Beitrag: 24.10.05, 19:32
  4. session eindeutig Identifizieren
    Von Diggicell im Forum PHP
    Antworten: 4
    Letzter Beitrag: 07.01.04, 22:26
  5. Label ist nicht eindeutig
    Von grobyKiel im Forum ASP
    Antworten: 3
    Letzter Beitrag: 21.08.03, 14:39