[PHP] Statistik - Herkunftsland

kirmandi

Mitglied
Hi,

ich bastle mir gerade ein Statistik system hab auch schon einiges drin (online, visits, os, browser, refferer, auflösung...)

nur will ich nun noch herausfinden wo der besucher herkommt also zuhause ist!

der useragent gibt ja nur die sprache aus, so bekommt man allerdings bei einem österreicher oder schweizer meist deutschland raus oder?

mich würde daher interessieren wie man das am besten und möglichst genau machen kann (also nich zB über die adresse das alle die AOL nutzen aus america kommen)

PS: habe schon gesucht und geschaut wie andere statistiken das machen, habe es nur entweder nicht gefunden oder die möglichkeit nicht verstanden
 
Über die IP kannst du das relativ genau machen, ich glaube es
sind 90% Sicherheit , dass die eine IP dem richtigen Land zuweist.

Irgendwo im Netz gibt es Datenbanken mit IP's und den
entsprechenden Ländern :)


*scriptsuch*
http://rv.web-heaven.com
 
Wenn du die Herkunft mittels dem oben angegebenen Beispiel hinbekommst wäre ich dankbar, wenn du das hier posten könntest.

Ich hab`s bis jetzt immer über den Hostname realisiert.
Ist aber aufgrund .net und.com sehr ungenau :-(
 
so direkt zum laufen hab ich das auch nich gebracht :/

aber habe was anderes entdeckt und ein wenig umgebaut :)

PHP:
<?
$target=$_SERVER['REMOTE_ADDR'];
if (isset($target)){
$nextServer = "whois.ripe.net";
   if($nextServer){
     $buffer = "";
     if(! $sock = fsockopen($nextServer, 43, &$num, &$error, 10)){
       unset($sock);
       }
     else{
       fputs($sock, "$target$extra\n");
       while (!feof($sock))
         $buffer .= fgets($sock, 10240);
       fclose($sock);
       }
     }
  $buffer = str_replace(" ", "&nbsp;", $buffer);
  $msg = nl2br($buffer);
$posun = strpos ($msg, "0.0.0.0&nbsp;-&nbsp;255.255.255.255");
if ($posun>0){
$rest="unknown";
$msg=" ";}
$posus = strpos ($msg, "Florida");
if ($posus>0){
$rest="US";
$msg="US";}
else{
$pos = strpos ($msg, "country:");
if ($pos>0){$rest = substr ($msg, $pos+44, 2);} 
 $rest=str_replace(" ", "", $rest);
}

echo "IP: $target - country: $rest";

}
?>
 
Zurück