Il existe plusieurs manières de procéder, mais une bonne solution consiste à utiliser une suite de ciblage géographique. Selon votre budget, il existe des solutions gratuites et payantes. J'ai utilisé le produit Digital Element's (NetAcuity) pour ce genre de chose dans le passé, et leurs solutions sont de premier ordre. Ils fournissent à la fois une solution serveur interne (pour les applications hautes performances, ~ 30k requêtes par seconde) et une solution de service Web pour des applications plus classiques. Ils ont des API dans de nombreuses langues, y compris Python que vous pouvez utiliser dans Django. Ils vous permettront d'interroger des informations telles que l'emplacement géographique, la langue primaire et secondaire, la vitesse de connexion, etc., en fonction de l'adresse IP de l'utilisateur. La précision géographique au niveau du pays est très précise en fonction de mon expérience.
Une solution gratuite à prendre en compte est MaxMind, même si je ne connais pas très bien leur produit.
en double de http://stackoverflow.com/questions/2218093/django-retrieve-ip -emplacement ? – msanders