Powiem tam... Skrypt jaki masz nie działa, bo curl używa strony która się sypie

Tylko że przy tym wysypaniu się zwróciła mi jednocześnie adres serwera z którego korzysta do geokodowania. Adres w skrypcie jest tylko pośrednikiem i można go po prostu obejść. Przebuduj nieco skrypt by używał
http://api.hostip.info/get_html.php?ip=ADR...p;position=truea w wyniku dostaniesz choćby coś takiego

Kod
Country: POLAND (PL)
City: Warsaw
Latitude: 52.2333
Longitude: 21
IP: ADRES_IP
a to już banalnie się obrabia i co najważniejsze... dostajesz z tej strony współrzędne do geokodowania wprost na tacy

Tylko uważaj! Nie zawsze znajduje! Jeśli tak będzie w Twoim przypadku to musisz użyć geokodowania po nazwie państwa i miasta choćby od google jakie wspomniałem.
Dodatkowo zacząłem się bawić modyfikacją adresu url i wiem, że nie musisz dostać html, ale także xml modyfikując do formy:
http://api.hostip.info/get_html.php?ip=ADR...p;position=trueBy było weselej, to da się też dorwać format JSON, ale już żądaniem POST o nieznanym mi formacie, bo próba wywołania
http://api.hostip.info/get_json.php?ip=ADR...p;position=truezwraca błąd, iż nie przesłałem pliku. Zapewne da się z tego adresu wyciągnąć jeszcze więcej, ale nie mam już czasu by się bawić.
Najważniejsza zaś rzecz w całości? Serwer zwracający odpowiedź jest bardzo szybki

Zazwyczaj dostawałem odpowiedź w czasie około sekundy od momentu wpisania adresu do otrzymania wyniku. Podany w znalezionym przez Ciebie skrypcie był z powodu byków nieosiągalny.