# Django 5.2.8 documentation

# Geolokalisering med GeoIP2

## Översikt

Objektet `GeoIP2` är ett omslag för MaxMind geoip2 Python-biblioteket. [1]

För att utföra IP-baserad geolokalisering kräver objektet `GeoIP2` Python-paketet geoip2 och GeoIP-datauppsättningarna `Country` och/eller `City` i binärt format (CSV-filer fungerar inte!), som laddats ner från t.ex. webbplatserna MaxMind eller DB-IP. Hämta filerna `GeoLite2-Country.mmdb.gz` och `GeoLite2-City.mmdb.gz` och packa upp dem i en katalog som motsvarar inställningen `GEOIP_PATH`.

Dessutom rekommenderas det att installera C-biblioteket libmaxminddb, så att `geoip2` kan utnyttja C-bibliotekets snabbare hastighet.

## Exempel

Här är ett exempel på hur den används:

    >>> 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)'

## API-referens

class GeoIP2(path=None, cache=0, country=None, city=None)

Objektet `GeoIP` kräver inga parametrar för att använda standardinställningarna. Åtminstone bör dock inställningen `GEOIP_PATH` anges med sökvägen till platsen för dina GeoIP-datauppsättningar. Följande initialiseringsnyckelord kan användas för att anpassa något av standardvärdena.

Argument för nyckelord | Beskrivning
--- | ---
`Sökväg` | Baskatalog där GeoIP-data finns eller den fullständiga sökvägen till den plats där stads- eller landsdatafilerna (`.mmdb`) finns. Förutsätter att både stads- och landsdatauppsättningarna finns i denna katalog; åsidosätter inställningen `GEOIP_PATH`.
`cache` | Cache-inställningarna när GeoIP-dataseten öppnas. Kan vara ett heltal i (0, 1, 2, 4, 8) som motsvarar C API-inställningarna `MODE_AUTO`, `MODE_MMAP_EXT`, `MODE_MMAP` respektive `GEOIP_INDEX_CACHE` `MODE_MEMORY`. Standardvärdet är 0 (`MODE_AUTO`).
`land` | Namnet på GeoIP-landdatafilen. Standardvärdet är `GeoLite2-Country.mmdb`. Om du anger detta nyckelord åsidosätts inställningen `GEOIP_COUNTRY`.
`stad` | Namnet på GeoIP-datafilen för staden. Standardvärdet är `GeoLite2-City.mmdb`. Om du anger detta nyckelord åsidosätts inställningen `GEOIP_CITY`.

## Metoder

### Frågeställning

Alla följande frågerutiner kan ta en instans av `IPv4Address` eller `IPv6Address`, en sträng IP-adress eller ett fullständigt kvalificerat domännamn (FQDN). Till exempel: skulle `IPv4Address("205.186.163.125")`, `"205.186.163.125"` och `"djangoproject.com"` alla vara giltiga frågeparametrar.

GeoIP2.city(query)

Returnerar en ordbok med stadsinformation för den angivna frågan. Vissa av värdena i ordlistan kan vara odefinierade (`None`).

GeoIP2.country(query)

Returnerar en ordbok med landskod och land för den angivna frågan.

GeoIP2.country_code(query)

Returnerar den landskod som motsvarar frågan.

GeoIP2.country_name(query)

Returnerar det landsnamn som motsvarar frågan.

### Koordinera hämtning

GeoIP2.lon_lat(query)

Returnerar en koordinattupel av (longitud, latitud).

GeoIP2.lat_lon(query)

Returnerar en koordinattupel av (latitud, longitud),

GeoIP2.geos(query)

Returnerar ett `Point`-objekt som motsvarar frågan.

## Inställningar

### `GEOIP_PATH`

En sträng eller `pathlib.Path` som anger den katalog där GeoIP-datafilerna finns. Denna inställning är obligatorisk om den inte anges manuellt med nyckelordet `path` vid initiering av objektet `GeoIP2`.

### `GEOIP_COUNTRY`

Det basnamn som ska användas för GeoIP-landdatafilen. Standardvärdet är `'GeoLite2-Country.mmdb'`.

### `GEOIP_CITY`

Det basnamn som ska användas för GeoIP-datafilen för staden. Standardvärdet är `'GeoLite2-City.mmdb'`.

## Undantag

exception GeoIP2Exception

  Undantaget som uppstår när ett fel inträffar i `GeoIP2` wrapper. Undantag från det underliggande `geoip2`-biblioteket skickas vidare oförändrade.

Fotnoter

[1]

GeoIP(R) är ett registrerat varumärke som tillhör MaxMind, Inc.