0251 / 590 837 15
info@a-coding-project.de

GeoLocation mit PHP

GeoLocation ist das herausfinden des Standortes einer IP-Adresse. So funktionieren zum Beispiel die standortspezifischen Anzeigen mittels Google AdWords. Wenn ihr mittels GeoLocation auch auf eurer Seite den Standort des Lesers ermitteln wollt habe ich heute etwas für euch: GeoLocation funktioniert mit PHP in nur einer Codezeile!

Basis hierfür ist ein Webservice von GeoPlugin.net. Dem muss man einfach über einen GET-Parameter die IP-Adresse übergeben. Zurück bekommt man einen serialisierten String. Dieser muss dann noch deserialisiert werden und schon hat man ein Array mit den benötigten Daten:

<?php
$location = unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$_SERVER['REMOTE_ADDR']));
?>

Als Ergebnis bekommt man folgendes Array zurück: (mit print_r($location)):

Array ( [geoplugin_city] => Nottuln [geoplugin_region] => North Rhine-Westphalia [geoplugin_areaCode] => 0 [geoplugin_dmaCode] => 0 [geoplugin_countryCode] => DE [geoplugin_countryName] => Germany [geoplugin_continentCode] => EU [geoplugin_latitude] => 51.9333000183 [geoplugin_longitude] => 7.34999990463 [geoplugin_regionCode] => 07 [geoplugin_regionName] => North Rhine-Westphalia [geoplugin_currencyCode] => EUR [geoplugin_currencySymbol] => € [geoplugin_currencyConverter] => 0.7535226968 )

Wie auch beim Kartenoverlay von Google sind die Angaben nicht ganz genau. Der bei mir gefundene Ort liegt 60km von mir entfernt. Als ich allerdings gestern das ganze durchgeführt habe, bekam ich einen Ort der nur 25km von mir entfernt lag.

Ich denke eine wirkliche Genauigkeit ist auch nicht ganz so wichtig. Wichtiger sind die Regionen. Die hier angegebenen Daten kann man nun auch schön in Google Maps einbauen. Das geht mit dem obigen PHP-Script so:

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.de/?ie=UTF8&hq=&ll=<?PHP echo $location['geoplugin_latitude']; ?>,<?PHP echo $location['geoplugin_longitude']; ?>&spn=0.29439,0.61454&t=h&z=12&output=embed"></iframe><br /><small><a href="http://maps.google.de/?ie=UTF8&hq=&hnear=Beelen,+Warendorf,+Nordrhein-Westfalen&ll=51.931092,8.114048&spn=0.146493,0.307274&t=h&z=12&source=embed" style="color:#0000FF;text-align:left">Größere Kartenansicht</a></small>

Einsatzmöglichkeiten:

  • Sprach & Ländervorbelegung auf internationalen Anzeigen
  • Regionsabhängige Anzeigen
  • Standortabhängige Server-Wahl (zum Beispiel für Download-Portale)

Kommentare

Julian Baumüller schrieb am 04.11.2011:

Das Tutorial ist wirklich spitze! Für Entwickler unübertrefflich wenns um ein neues Projekt wie eine Website geht! Vielen, vielen Dank !! Julian Baumüller