Cytat(sebekzosw @ 23.09.2012, 16:48:01 )

IP zawsze ma stałą lokalizację czy jest ona raczej zmienna? Czekam na Wasze opinie :-)
IP realne może się zmienić - jeden z lepszych przykładów podał @Kofel: Neo ze zmiennym IP.
IP w bazie (tej, którą odpytujesz) się nie zmieni, o ile ktoś nie zmieni wpisu w bazie. Przykład powodu zmiany wpisu to np. sytuacja, gdy X (operator, klient operatora) otrzymał adresy po kimś innym - czyli taka "spuścizna".
IMHO warto zaryzykować na trzymanie lokalnej kopii bazy danych z adresacją IP i przypisaną lokalizacją i odpytywanie lokalnej bazy. Z jednym zastrzeżeniem: co pewien czas odświeżać swoją bazę - taki swoisty cache. Czyli:
- odpytujesz nowy ip - odpytujesz zewnętrzną bazę, dopisujesz do swojej bazy dane: ip, lokalizację, czas odpytania
Za jakiś czas możesz mieć znowu pytanie o dany IP, i wtedy:
- odpytujesz lokalną bazę, sprawdzasz, jak dawno temu zapisałeś dane. Jeśli zapisałeś niedawno (krócej niż X [dni/tygodni/miesiecy]), serwujesz dane ze swojej bazy. Jeśli dawno (dawniej niż X czasu temu), odpytujesz bazę zewnętrzną, aktualizujesz swoją.
Pojęcia "dawno" i "niedawno" są oczywiście względne i bazują na jakimś czasie, który musisz arbitralnie przyjąć. Na przykład tydzień, miesiąc, dwa miesiące, kwartał, pół roku...
Przyjęcie długiego czasu spowoduje zmniejszenie odpytań do bazy zewnętrznej, ale większe ryzyko zaserwowania starych danych (i dłuższy czas trzymania błędnych danych w lokalnej bazie)
Przyjęcie krótkiego czasu spowoduje, że w lokalnej bazie będziesz miał procentowo więcej aktualnych danych, ale częściej będziesz odpytywał zewnętrzną bazę.
Myślę, że do testów możesz zacząć od względnie krótkiego czasu typu miesiąc czy dwa.
P.S.
Adresy IP nie zmieniają właścicieli/lokalizacji zbyt często, a odpytanie zewnętrznej bazy to relatywnie mały ruch, więc nie wiem, czy to co robisz, to nie robota "sztuka dla sztuki".