Вы можете использовать Geolocation, чтобы получить координаты, а затем некоторые службы, чтобы получить страну из этого, но API геолокации основан на браузере, поэтому вы можете получить к нему доступ только через JavaScript, а затем как-то передать эти данные в PHP, я написал что-то в JS Part один раз:
http://www.lautr.com/utilizing-html5-geolocation-api-and-yahoo-placefinder-example
Когда дело доходит до получения Местоположения через IP, существуют bazillion Services, которые предлагают базы данных для этого, некоторые бесплатные, некоторые платные, некоторые с большим количеством хранимых IP и большим количеством данных, некоторые с меньшим, для Например, тот, который вы упомянули, работает просто отлично:
http://api.hostip.info/?ip=192.0.32.10
Таким образом, вы можете использовать API Geolocation, который довольно удобен, но требует разрешения пользователей, работает через JS и не работает в IE (пока) или должен искать IPÜ Location Service, который соответствует вашим потребностям :)