Géolocalisation avec GeoIPLien vers cette rubrique

L’objet GeoIP est une adaptation ctypes de l”API C GeoIP de MaxMind. [1]

Afin de pouvoir procéder à la géolocalisation basée sur l’adresse IP, l’objet GeoIP a besoin de la bibliothèque C GeoIP et d’au moins un des jeux de données GeoIP Country ou City en format binaire (les fichiers CSV ne fonctionneront pas !). Ces données peuvent être téléchargées sur le site MaxMind. Récupérez les fichiers GeoLiteCountry/GeoIP.dat.gz et GeoLiteCity.dat.gz et décompressez-les dans un répertoire correspondant au contenu du réglage GEOIP_PATH que vous devez définir dans vos réglages. Consultez l’exemple et la référence ci-dessous pour plus de détails.

ExempleLien vers cette rubrique

En supposant que la bibliothèque C GeoIP est installée, voici un exemple de son utilisation :

Code
>>> from django.contrib.gis.geoip import GeoIP
>>> g = GeoIP()
>>> g.country('google.com')
{'country_code': 'US', 'country_name': 'United States'}
>>> g.city('72.14.207.99')
{'area_code': 650,
'city': 'Mountain View',
'country_code': 'US',
'country_code3': 'USA',
'country_name': 'United States',
'dma_code': 807,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'postal_code': '94043',
'region': 'CA'}
>>> g.lat_lon('salon.com')
(37.789798736572266, -122.39420318603516)
>>> g.lon_lat('uh.edu')
(-95.415199279785156, 29.77549934387207)
>>> g.geos('24.124.1.80').wkt
'POINT (-95.2087020874023438 39.0392990112304688)'

Les réglages GeoIPLien vers cette rubrique

GEOIP_PATHLien vers cette rubrique

Une chaîne indiquant le répertoire où se trouvent les fichiers de données GeoIP. Ce réglage est obligatoire sauf dans le cas où vous indiquez manuellement le paramètre path lors de l’initialisation des objets GeoIP.

GEOIP_LIBRARY_PATHLien vers cette rubrique

Une chaîne indiquant l’emplacement de la bibliothèque C GeoIP. Typiquement, ce réglage n’est utilisé que si la bibliothèque C GeoIP ne se trouve pas à un emplacement standard (par ex. /home/sue/lib/libGeoIP.so).

GEOIP_COUNTRYLien vers cette rubrique

Le nom de base à utiliser pour le fichier de données des pays GeoIP. 'GeoIP.dat' par défaut.

GEOIP_CITYLien vers cette rubrique

Le nom de base à utiliser pour le fichier de données des villes GeoIP. 'GeoLiteCity.dat' par défaut.

L’API GeoIPLien vers cette rubrique

class GeoIP(path=None, cache=0, country=None, city=None)Lien vers cette définition

L’objet GeoIP n’a besoin d’aucun paramètre s’il utilise les réglages par défaut. Cependant, il faut au minimum définir le réglage GEOIP_PATH en indiquant le chemin vers l’emplacement des jeux de données GeoIP. Les paramètres nommés suivants peuvent être utilisés pour personnaliser les réglages par défaut lors de l’initialisation.

Paramètres nommés

Description

path

Répertoire de base où sont stockées les données GeoIP ou chemin complet de l’emplacement des fichiers de données (.dat) de villes et de pays. On suppose que les jeux de données des villes et des pays se trouvent dans ce même répertoire ; ce paramètre surcharge le réglage GEOIP_PATH.

cache

Les réglages de cache lors de l’ouverture des jeux de données GeoIP, acceptant les valeurs nombre entier 0, 1, 2, 4 correspondant respectivement aux réglages GeoIPOptions de l’API C : GEOIP_STANDARD, GEOIP_MEMORY_CACHE, GEOIP_CHECK_CACHE et GEOIP_INDEX_CACHE. La valeur par défaut est 0 (GEOIP_STANDARD).

country

Le nom du fichier de données des pays GeoIP. La valeur par défaut est GeoIP.dat. L’attribution d’une valeur à ce paramètre surcharge la valeur du réglage GEOIP_COUNTRY.

city

Le nom du fichier de données des villes GeoIP. La valeur par défaut est GeoLiteCity.dat. L’attribution d’une valeur à ce paramètre surcharge la valeur du réglage GEOIP_CITY.

Méthodes GeoIPLien vers cette rubrique

InterrogationLien vers cette rubrique

Toutes les routines d’interrogation suivantes acceptent soit une chaîne d’adresse IP ou un nom de domaine entièrement qualifié (FQDN). Par exemple, '205.186.163.125' et 'djangoproject.com' sont tous deux des paramètres d’interrogation valides.

GeoIP.city(query)Lien vers cette définition

Renvoie un dictionnaire d’informations sur une ville correspondant à la requête donnée. Certaines valeurs du dictionnaire peuvent rester indéfinies (None).

GeoIP.country(query)Lien vers cette définition

Renvoie un dictionnaire contenant le pays et son code correspondant à la requête donnée.

GeoIP.country_code(query)Lien vers cette définition

Ne renvoie que le code de pays correspondant à la requête donnée.

GeoIP.country_name(query)Lien vers cette définition

Ne renvoie que le nom de pays correspondant à la requête donnée.

Obtention de coordonnéesLien vers cette rubrique

GeoIP.coords(query)Lien vers cette définition

Renvoie un tuple de coordonnées (longitude, latitude).

GeoIP.lon_lat(query)Lien vers cette définition

Renvoie un tuple de coordonnées (longitude, latitude).

GeoIP.lat_lon(query)Lien vers cette définition

Renvoie un tuple de coordonnées (latitude, longitude).

GeoIP.geos(query)Lien vers cette définition

Renvoie un objet django.contrib.gis.geos.Point correspondant à la requête.

Informations de base de donnéesLien vers cette rubrique

GeoIP.country_infoLien vers cette définition

Cette propriété renvoie des informations sur la base de données des pays GeoIP.

GeoIP.city_infoLien vers cette définition

Cette propriété renvoie des informations sur la base de données des villes GeoIP.

GeoIP.infoLien vers cette définition

Cette propriété renvoie des informations sur toutes les bases de données GeoIP (villes et pays), ainsi que sur la version de la bibliothèque C GeoIP (si pris en charge).

Méthodes de compatibilité d’API GeoIP-PythonLien vers cette rubrique

Ces méthodes existent pour simplifier la compatibilité avec du code utilisant l’API Python existante de MaxMind.

classmethod GeoIP.open(path, cache)Lien vers cette définition

Cette méthode de classe crée une instance d’objet GeoIP à partir du chemin de base de données indiqué et du réglage de cache.

GeoIP.region_by_addr(query)Lien vers cette définition
GeoIP.region_by_name(query)Lien vers cette définition
GeoIP.record_by_addr(query)Lien vers cette définition
GeoIP.record_by_name(query)Lien vers cette définition
GeoIP.country_code_by_addr(query)Lien vers cette définition
GeoIP.country_code_by_name(query)Lien vers cette définition
GeoIP.country_name_by_addr(query)Lien vers cette définition
GeoIP.country_name_by_name(query)Lien vers cette définition

Notes de bas de page