Standort bestimmen

Ich habe mit ein kleines Script gebastelt mit dem man Browser, Ip und Host [usw] auslesen kann.

Jedoch weiß ich nicht woher der Benutzer kommt.
Wie kann ich den Standort bestimmen? (beispielsweise sagt mir das script: Deutschland)

http://geotool.flagfox.net/
Also darüber betimme ich:
einfach IP eingeben und Standwort feststellen. :wink:
Wies mit PHP oder so geht würd ich auch mal gern wissen.

<?php
// IP bestimmen und Host auslesen
$ip = getenv("REMOTE_ADDR");   
$host = gethostbyaddr($ip);    

db_host = "localhost";
$db_user = "";
$db_password = "";
$mysql_connect = mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
$database = "";
mysql_select_db($database);

$get_country_by_ip = $_SERVER['REMOTE_ADDR'];

$ip_bytes = explode(".", $get_country_by_ip);
$longnum = ($ip_bytes[0] << 24) | ($ip_bytes[1] << 16) |
           ($ip_bytes[2] << 8) | $ip_bytes[3];

$sql = "SELECT COUNTRY_NAME FROM ip_list WHERE IP_FROM <= '$longnum' and IP_TO >= '$longnum'";
$query = mysql_query($sql);
while ($ds = mysql_fetch_object($query)) {
	$country = $ds->COUNTRY_NAME;
} 

echo "Du kommst aus: ". $country;

?>

Die IP-Datenbank könnt ihr auf hardi.rockt.es/sig/ip_list.sql runterladen
© amityville

[quote]<?php
// IP bestimmen und Host auslesen
$ip = getenv(„REMOTE_ADDR“);
$host = gethostbyaddr($ip);

$db_host = „localhost“;
$db_user = „root“;
$db_password = „“;
$mysql_connect = mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
$database = „imperator“;
mysql_select_db($database);

$get_country_by_ip = $_SERVER[‚REMOTE_ADDR‘];

$ip_bytes = explode(".", $get_country_by_ip);
$longnum = ($ip_bytes[0] << 24) | ($ip_bytes[1] << 16) |
($ip_bytes[2] << 8) | $ip_bytes[3];

$sql = „SELECT COUNTRY_NAME FROM ip_list WHERE IP_FROM <= ‚$longnum‘ and IP_TO >= ‚$longnum‘“;
$query = mysql_query($sql);
while ($ds = mysql_fetch_object($query)) {
$country = $ds->COUNTRY_NAME;
}

echo "Du kommst aus: ". $country;

?>[/quote]

Nun… es funktioniert nicht.
Ich habe hier mal ein $ eingefügt.
(Der Smiley ist natürlich nicht da, sondern wie im Beispiel)

ups sorry :smiley:

naja jetz soillte es ja tun =)

nja, das ist aber nicht zwingend notwendig :ps:

$countries = array(
 'at' => "Österreich",
 'de' => "Deutschland",
 'ch' => "China"); // :ps:

$country = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$country = substr($country, strrpos($country, ".")+1);
if(isset($countries[$country]))
  $country = $countries[$country];

echo "You come from $country";

Demo: demo.michi7x7.de/test.php

@michi:
You come from net :ps: :astonished: :wink: o.0

Die Checkbox [ ] Smilies ausschalten unter dem Eingabebereich zu nutzen, ist beim Posten von Code ganz sinnvoll …

@zensur!-avatar:
danke, aber auf china-nivea ist die schweiz dann doch noch nicht :stuck_out_tongue:

[quote=„DHMH“]@michi:
You come from net :ps: :astonished: :wink: o.0[/quote]
Dann bist du bei einem Provider der seltsamerweiße die .net Domain bevorzugt o.O kommt vor :ps:

Nja, es gibt ja auch Tags…

:)

Also ich wusste wirklich nicht, dass ich von China komme :ps:
(ich => Schweiz)

[quote=„bcg“]Also ich wusste wirklich nicht, dass ich von China komme :ps:
(ich => Schweiz)[/quote]
Ja, ch ist ja auch nicht China sondern Schweiz (War auch nicht ganz ernst gemeint…)

supii ich komm aus „net“ :ps:

ich liebe die t-com :smiley:

Nene, da steht
"China" ^^

aaargh, das war doch nur ein Scherz von ihm…