Aquí hay otro ejemplo:
http://www.devtroce.com/2010/08/17/d...uario-con-php/
La mejor opción es buscar un webservice que te de la información. Casi todos son de pago, algo como 20€ cada 100000 peticiones o por el estilo.
Las soluciones que plantean los demás post se basan en guardar la información de las ip en tu propia aplicación. De esta manera, cualquier cambio o actualización también tendrás que hacerla en tu app.
La detección de pais se basa en el hecho de que cada pais tiene asignado un rango de ip. Sabiendo este rango puedes determinar el pais, para eso necesitas obligadamente una base de datos, archivo, etc. No sé hasta qué punto esta info es fiable y si es posible que estos datos cambien.
Mediante un webservice, la info está siempre al día y tú sólo te ocupas de hacer la llamada y recuperar la respuesta.
Aquí tienes otra alternativa:
http://ip-to-country.webhosting.info/book/print/5
Yo no tengo este problema porque la detección se hace por nombre de dominio. Ej: midominio.es o midominio.de ya me indican qué configuración / datos tengo que cargar y realmente no me me importa el origen real del visitante.
No creo que haya una solución definitiva, tendrás que usar lo que te paso y además meter código tuyo. Espero que te sirva, salu2