Angaben des Clienten ausgeben

TTlong

Angesehenes Mitglied
Hallo,

hat jemand von euch eine fertige (PHP) Lösung, die die IP-Adresse, den Browser, das verwendete OS sowie das Herkunftsland des Clienten ausgibt?

IP-Adresse --> kann ich alleine
Browser --> über User_Agent zu lang und nicht eindeutig genug
OS --> keine Ahnung
Land --> über IP auflösen --> keine Ahnung

Wär schön, wenn jemand fertige Schnipsel hat bzw nen Lösungsvorschlag.

Danke
 
OS - nur über Javascript
Land - IP auflösen

http://redvip.homelinux.net/varios/www.ipindex.net/

Über ein 'Schnipsel' geht das wohl etwas hinaus ...

Habe das so gelöst:

Datenbanktabelle:

DROP TABLE IF EXISTS `lookup`;
CREATE TABLE `lookup` (
`ID` int(11) NOT NULL auto_increment,
`IP` varchar(250) collate latin1_german2_ci NOT NULL default '',
`D0` varchar(250) collate latin1_german2_ci NOT NULL default '',
`D1` varchar(250) collate latin1_german2_ci NOT NULL default '',
`D2` varchar(250) collate latin1_german2_ci NOT NULL default '',
`D3` varchar(250) collate latin1_german2_ci NOT NULL default '',
`D4` varchar(250) collate latin1_german2_ci NOT NULL default '',
KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;


Script:

<?php
//DB-Verbindung herstellen ...
//Variable '$ip' wird übergeben ...

function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 80);

fputs($fp, "POST $path HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$data_to_send\n");

while(!feof($fp)) {
$res .= fgets($fp, 128);
}

fclose($fp);

return $res;
}

$dat=array();
$dat[0]="";
$dat[1]="";
$dat[2]="";
$dat[3]="";
$dat[4]="";


$result=mysql_query("select * from lookup where IP='$ip'");
while ($r=MYSQL_FETCH_ROW($result)) {


$dat[0]=$r[2];
$dat[1]=$r[3];
$dat[2]=$r[4];
$dat[3]=$r[5];
$dat[4]=$r[6];

$foo++;

}

if($dat[2]=="") {

$data="ipaddresses=".$ip;



$x = PostToHost(
"www.formyip.com",
"/ipcountry_popup.php",
"www.formyip.com",
$data
);


$v=explode("<tr>",$x);

$k=explode(">",$v[1]);


for($t=6;$t<15;$t++) {

$con=strip_tags($k[$t]);
$con=str_replace("\n","",$con);
$con=str_replace("\t","",$con);
$con=str_replace("\r","",$con);
$con=str_replace("<BR><BR>","",$con);
$con=str_replace("<BR>","",$con);

if ($t==6)$dat[0]=str_replace(" "," ",$con);
if ($t==8)$dat[1]=str_replace(" "," ",$con);
if ($t==10)$dat[2]=str_replace(" "," ",$con);
if ($t==12)$dat[3]=str_replace(" "," ",$con);
if ($t==14)$dat[4]=str_replace(" "," ",$con);

}
$old=$ip;
$doo++;


$return=mysql_query("insert into lookup (ID,IP,D0,D1,D2,D3,D4) values ('','$ip','$dat[0]','$dat[1]','$dat[2]','$dat[3]','$dat[4]')");
}

//DB-Verbindung schliessen
?>


Wenn Du damit nicht zurecht kommst, schick' mir eine PN.


Gruss


codemonk
 
Zurück
Oben