IP-Adressen Geolocation XML API

Nicht dass es sonderlich schwer wäre mit PHP, und zum Beispiel der freien Version der Maxmind-IP-Datenbank, eine Zuordnung IP <-> Land zu implementieren, aber natürlich wäre es viel cooler wenn man sich die monatlich erscheinenden Updates der Datenbank sparen könnte, und noch cooler wäre es wenn eine solche Datenbank als Webservice zur Verfügung gestellt werden würde.

Eher durch Zufall habe ich nun eine entsprechende API gefunden, die bei einer Genauigkeit von 99,5% IPs nicht nur Ländern, sondern auch Städten und Zeitzonen zuordnet! Dabei ist der Aufruf denkbar einfach:

http://ipinfodb.com/ip_query_country.php?ip=74.125.45.100

Daraus resultiert dann eine XML-Datei mit allen benötigten Infos, die dann weiter verarbeitet werden kann:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
	<Ip>74.125.45.100</Ip>
	<Status>OK</Status>
	<CountryCode>US</CountryCode>
	<CountryName>United States</CountryName>
	<RegionCode>06</RegionCode>
	<RegionName>California</RegionName>
	<City>Mountain View</City>
	<ZipPostalCode>94043</ZipPostalCode>
	<Latitude>37.4192</Latitude>
	<Longitude>-122.057</Longitude>
	<Timezone>-8</Timezone>
	<Gmtoffset>-8</Gmtoffset>
	<Dstoffset>-7</Dstoffset>
</Response>

Einen Haken hat sie Sache dann (natürlich) dennoch. Die Anzahl der Requests ist auf 2 pro Sekunde begrenzt. Für den Fall das man dieses Limit überschreitet bekommt man allerdings keine Fehlermeldung sondern die Anfrage wird in eine Queue gestellt und später auf jeden Fall beantwortet!

Auf der Seite findet ihr ein nettes PHP-Skript und auch eine Möglichkeit die Geoinformationen direkt in einem Cookie bei den Benutzern zu cachen. Für „normale“ Websites ist dieser Service wahrscheinlich völlig ausreichend, wenn man die geeigneten Maßnahmen trifft (Caching!), für Hochlast-Seiten ist eher zu bezweifeln, dass die API anwendbar ist, da sollte man auf eine lokale Datenbank zurückgreifen. Trotzdem ist es eine nette Sache, gerade dann wenn man Geolocation einmal implementieren, und danach nicht mehr anfassen möchte.

Ähnliche Beiträge

Ein neuer Geocoder für Google Wie Webmonkey berichtet, bietet Google einen neuen Geocoder an, der zum einen genauer funktionieren soll als der alte, und zum anderen bessere Möglich...
Mittels GeoIP die Herkunftsstadt einer IP-Nummer e... Google Maps-Anwendungen kursieren inzwischen recht viele dort draußen, aber leider kommen die wenigstens auf die Idee, dass man eigentlich dem Nutzer ...
MooGeo – Geocoding mit den Mootools Geocoding kommt ja immer mehr und ist irgendwo inzwischen auch Bestandteil fast jeder Web2.0-Anwendung. Das Ganze wird noch einmal einen Schub durch d...
Geocodieren von Postleitzahlen mit der OpenGeoDB Im vorherigen Teil des Tutorials haben wir die OpenGeoDB installiert, und nun ist es an der Zeit das System sinnvoll einzusetzen. Ich verwende explizi...

9 Antworten auf „IP-Adressen Geolocation XML API“

  1. Pingback: Linkhub – Woche 02-2010 - pehbehbeh
  2. Ein sehr interessanter Ansatz – aber leider auch bei mir zu ungenau. Unser Firmennetzwerk in NRW wird aufgelöst auf „State/Province : Sachsen“ und „City: Schweiz“ (!!!) ;-)

  3. Hallo Guido,

    danke für den Hinweis. Wir sind für unser Portal ebenfalls bereits auf der Suche nach einer Lösung um die User je nach Location auf unterschiedliche Angebote umzuleiten. Aber 2 Requests pro Sekunde ist wohl leider zu wenig :(

    Kennt jemand noch andere Anbieter, die API’s anbieten?

    Viele Grüße,
    Mathias

  4. Komisch, bei mir hatte es geklappt. Muss ich nochmal ausprobieren. Das ein vernünftiges Caching rein muss, hatte ich ja schon geschrieben, aber da die Datenbank „nur“ eine Genauigkeit von 95% besitzt ist wahrscheinlich, das sie häufig aktualisiert wird.

  5. Getestet und für schlecht befunden. Keine ip wurde wirklich erkannt. Mit ner Alice ip erkennt er maximal das land. Mit ner Telekom ip sagt er mir ne Grosstadt 100km weiter usw.

    Aber es geht mir um was anderes. Cleverer wäre es die Abfrageergebnisse zu speichern und bei ip’s die in die richtuing gehen (also gleiches c netz zb) nicht erst die Api zu bemühen. So könnte man innerhalb kurzer zeit sich selber ne Datenbank aufbauen und hat auch keine Probleme mehr mit der Limitierung. Für den Fall von möglichen Anderungen überprüft man die abgespeicherten Daten halt hin und wieder mit der Api

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.