gethostbyaddr eindeutig

chris4712

Erfahrenes Mitglied
gethostbyaddr eindeutig?

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
 
Zuletzt bearbeitet:
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
 
Zuletzt bearbeitet:
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
 
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:
<?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:
-- 
-- 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.
 
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
 
Zurück