El objeto GeoIP2 es una capa para la biblioteca MaxMind geoip2 Python.
Para realizar geolocalización basada en IP, el objeto GeoIP2 requiere la paqueta Python geoip2 <https://pypi.org/project/geoip2/> y los conjuntos de datos GeoIP Country y/o City en formato binario (los archivos CSV no funcionarán!), descargados desde sitios como MaxMind o DB-IP.
Además, se recomienda instalar la biblioteca C libmaxminddb, para que geoip2 pueda aprovechar la velocidad más rápida de la biblioteca C.
Aquí tienes un ejemplo de su uso:
>>> 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)'
El objeto GeoIP no requiere parámetros para utilizar los ajustes predeterminados. Sin embargo, al menos el ajuste GEOIP_PATH debe estar configurado con la ruta del lugar donde se encuentran tus conjuntos de datos GeoIP. Los siguientes palabras clave de inicialización pueden utilizarse para personalizar cualquier de los valores por defecto.
Palabras Clave de Inicialización |
Descripción |
|---|---|
|
Directorio base a donde se encuentra la información GeoIP o la ruta completa a donde se encuentran los archivos de datos de ciudad o país ( |
|
Los ajustes de caché al abrir los conjuntos de datos GeoIP. Puede ser un entero en (0, 1, 2, 4, 8) que corresponda a los ajustes C API |
|
El nombre del archivo de datos país GeoIP. Por defecto es |
ciudad |
El nombre del archivo de datos ciudad GeoIP. Por defecto es |
Este método de clase instancia el objeto GeoIP a partir del camino de la base de datos y la configuración de caché dada.
Obsoleto desde la versión 5.1: Utiliza en su lugar el constructor GeoIP2().
Todos los siguientes procedimientos de consulta pueden tomar una instancia de IPv4Address o IPv6Address, una dirección IP como cadena, o un nombre de dominio completo (FQDN). Por ejemplo, IPv4Address("205.186.163.125"), "205.186.163.125", y "djangoproject.com" serían todos parámetros de consulta válidos.
Devuelve un diccionario con información de ciudad para la consulta dada. Algunos de los valores en el diccionario pueden estar indefinidos (None).
Devuelve un diccionario con el código y país para la consulta dada.
Returns the country code corresponding to the query.
Devuelve el código de país correspondiente a la consulta.
Devuelve una tupla de coordenadas (longitud, latitud).
Obsoleto desde la versión 5.1: Use GeoIP2.lon_lat() en su lugar.
Devuelve una tupla de coordenadas (longitud, latitud).
Devuelve una tupla de coordenadas (latitud, longitud),
Devuelve un objeto Point correspondiente a la consulta.
GEOIP_PATH¶Una cadena o pathlib.Path que especifica el directorio donde se encuentran los archivos de datos GeoIP. Este parámetro es obligatorio a menos que se especifique manualmente con la palabra clave path al inicializar el objeto GeoIP2.
GEOIP_COUNTRY¶El basename a utilizar para el archivo de datos país GeoIP. Por defecto es 'GeoLite2-Country.mmdb'.
El basename a utilizar para el archivo de datos ciudad GeoIP. Por defecto es 'GeoLite2-City.mmdb'.
La excepción lanzada cuando ocurre un error en la envoltura GeoIP2. Las excepciones del biblioteca subyacente geoip2 se pasan sin cambios.
Notas al pie
may 31, 2026