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:



	74.125.45.100
	OK
	US
	United States
	06
	California
	Mountain View
	94043
	37.4192
	-122.057
	-8
	-8
	-7

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.

9 Kommentare

  • 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“ (!!!) ;-)

  • 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

  • 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.

  • 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