IP-Adressen werden ja nicht willkürlich eingesetzt, jeder Anbieter, der im Internet irgendwas machen will, hat seinen fest vorgegebenen Bereich von Adressen, die er einsetzen darf - beispielsweise dürfte T-Online ein paar Millionen Adressen zur Verfügung haben, aufgeteilt in mehrere Bereiche, wovon ein Bereich immer in Frankfurt benutzt wird, der nächste in Köln, der nächste in Berlin und so weiter und so fort. Das bedeutet im Umkehrschluss aber auch, dass man IP-Adressen ziemlich genau einem Ort zuordnen kann. Dienste dafür gibt es wie Sand am Meer, die meisten erlauben aber nur eine bestimmte Anzahl von Abfragen pro Tag, haben veraltete Datenbanken oder sind nicht kostenlos.
Marc-Andre Caron dagegen stellt eine kostenlose, monatlich aktualisierte SQL-Datenbank mit genau diesen Informationen zur Verfügung, damit man Land, Stadt, Postleitzah, Längen- und Breitengrad zu einer IP-Adresse ermitteln kann. Das kann durchaus nützlich sein, erst kürzlich gabs bei einem Projekt, dass ich mit betreue, den Verdacht von Manipulation bei einem Voting. Zu wissen, woher ein riesiger Batzen von verdächtigen Votes kam, war bei der Aufklärung sehr hilfreich.
Die IP-Bereiche werden in der Datenbank geschickt gespeichert, damit man nicht mit Strings hantieren muss:
The IP addresses are listed in table ip_group_city. The data is not in the 1.1.1.1 format since it would need to be stored as text and we dont want that for obvious reasons.
Let say for ip A.B.C.D, the formula is
ip = (A*256+B)*256+C
(I assume A.B.C.0 is at the same location than A.B.C.255)For example, if you have an ip of 74.125.45.100 (google.com)
The formula would give a result of :
ip = (74*256+125)*256+45 = 4881709You would search for the IP address using MySQL by doing :
SELECT * FROM `ip_group_city` where `ip_start` <= 4881709 order by ip_start desc limit 1;
Gleichzeitig stellt Caron auch noch eine API zur Verfügung, die anscheinend auch keinen Beschränkungen unterworfen ist. Wer weiss, vielleicht kann der ein odere andere unter euch damit was anfangen. (via MAKE













Also das ist definitv mal ein genialer Service…
Muss ich glatt überlegen, was man damit bauen kann :-)
Mit Längen- und Breitengeraden könnte man das vermutlich auch direkt mit Google Maps oder so verknüpfen…
Man kann ja aus Spass mal ein Plugin für WP oder Textpattern bauen, das dem User anzeigt, wo er grad angeblich herkommt. Vielleicht baue ich das mal, ist ja wohl nicht so kompliziert.
Da würde ich aber eher die API für einsetzen, die Datenbank ist entpackt 67 MB groß, da drin jedes Mal einen Abruf starten, wenn ein Besucher auf die Seite kommt… der Provider wirds danken ;-)
Danke, das ist super.
Sowas hab ich gesucht! Die kommerziellen Varianten kosten ortsbezogen ein Schweinegeld! Jetzt muss ich mir nur noch ein Piwik-Plugin bauen, was die API anspricht :)
Gibts auch direkt von Google: google.com/jsapi
Einfach mal aufrufen und man sieht wo man ist, jedoch scheint das somit mehr eine Javascript Geschichte zu sein. Ob man eine Ip dorthin übergeben kann weiß ich nicht.