Géolocalisation avec GeoIP2Lien vers cette rubrique
AperçuLien vers cette rubrique
L’objet GeoIP2 est une adaptation de la bibliothèque Python geoip2 de MaxMind. [1]
Afin de pouvoir procéder à la géolocalisation basée sur l’adresse IP, l’objet GeoIP2 a besoin du paquet Python geoip2 et d’un des jeux de données GeoIP Country ou City en format binaire (les fichiers CSV ne fonctionneront pas !), téléchargé à partir des sites web MaxMind ou DB-IP. Récupérez les fichiers GeoLite2-Country.mmdb.gz et GeoLite2-City.mmdb.gz et décompressez-les dans un répertoire correspondant au réglage GEOIP_PATH.
En outre, il est recommandé d’installer la bibliothèque C libmaxminddb, afin que geoip2 puisse tirer parti de la vitesse plus rapide de la bibliothèque C.
ExempleLien vers cette rubrique
Voici un exemple de son utilisation :
>>> from django.contrib.gis.geoip2 import GeoIP2
>>> g = GeoIP2()
>>> g.country("google.com")
{'continent_code': 'NA',
'continent_name': 'North America',
'country_code': 'US',
'country_name': 'United States',
'is_in_european_union': False}
>>> g.city("72.14.207.99")
{'accuracy_radius': 1000,
'city': 'Mountain View',
'continent_code': 'NA',
'continent_name': 'North America',
'country_code': 'US',
'country_name': 'United States',
'is_in_european_union': False,
'latitude': 37.419200897216797,
'longitude': -122.05740356445312,
'metro_code': 807,
'postal_code': '94043',
'region_code': 'CA',
'region_name': 'California',
'time_zone': 'America/Los_Angeles',
'dma_code': 807,
'region': 'CA'}
>>> g.lat_lon("salon.com")
(39.0437, -77.4875)
>>> g.lon_lat("uh.edu")
(-95.4342, 29.834)
>>> g.geos("24.124.1.80").wkt
'POINT (-97 38)'
Référence de l’APILien vers cette rubrique
- class GeoIP2(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 |
|---|---|
|
Répertoire de base où sont stockées les données GeoIP ou chemin complet de l’emplacement des fichiers de données (.mmdb) 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 |
|
Les réglages de cache lors de l’ouverture des jeux de données GeoIP. Il peut s’agir d’un nombre entier dans (0, 1, 2, 4, 8) correspondant respectivement aux réglages |
|
Le nom du fichier de données des pays GeoIP. La valeur par défaut est |
|
Le nom du fichier de données des villes GeoIP. La valeur par défaut est |
MéthodesLien vers cette rubrique
InterrogationLien vers cette rubrique
Toutes les routines d’interrogation suivantes acceptent une instance de IPv4Address ou de IPv6Address, une chaîne d’adresse IP ou un nom de domaine entièrement qualifié (FQDN). Par exemple, IPv4Address("205.186.163.125"), "205.186.163.125" et "djangoproject.com" seraient tous des paramètres d’interrogation valables.
- GeoIP2.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).
- GeoIP2.country(query)Lien vers cette définition
Renvoie un dictionnaire contenant le pays et son code correspondant à la requête donnée.
- GeoIP2.country_code(query)Lien vers cette définition
Renvoie le code de pays correspondant à la requête donnée.
- GeoIP2.country_name(query)Lien vers cette définition
Renvoie le nom de pays correspondant à la requête donnée.
Obtention de coordonnéesLien vers cette rubrique
- GeoIP2.lon_lat(query)Lien vers cette définition
Renvoie un tuple de coordonnées (longitude, latitude).
- GeoIP2.lat_lon(query)Lien vers cette définition
Renvoie un tuple de coordonnées (latitude, longitude).
- GeoIP2.geos(query)Lien vers cette définition
Renvoie un objet Point correspondant à la requête.
RéglagesLien vers cette rubrique
GEOIP_PATHLien vers cette rubrique
Une chaîne ou objet pathlib.Path 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 GeoIP2.
GEOIP_COUNTRYLien vers cette rubrique
Le nom de base à utiliser pour le fichier de données des pays GeoIP. 'GeoLite2-Country.mmdb' par défaut.
GEOIP_CITYLien vers cette rubrique
Le nom de base à utiliser pour le fichier de données des villes GeoIP. 'GeoLite2-City.mmdb' par défaut.
ExceptionsLien vers cette rubrique
- exception GeoIP2ExceptionLien vers cette définition
L’exception levée quand une erreur survient dans la classe enveloppeuse
GeoIP2. Les exceptions provenant de la bibliothèque sous-jacentegeoip2ne sont pas interceptées et sont transmises telles quelles.
Notes de bas de page