Obtenir l'emplacement à partir d'une adresse IP

Je souhaite récupérer des informations telles que la ville, l'état et le pays d'un visiteur à partir de son adresse IP, afin de pouvoir personnaliser ma page Web en fonction de son emplacement. Existe-t-il un moyen efficace et fiable de le faire en PHP? J'utilise JavaScript pour les scripts côté...