---
title: "Geolokalisering med GeoIP2"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/ref/contrib/gis/geoip2/
canonical: https://djangodocs.dev/sv/5.2/ref/contrib/gis/geoip2/
---
# Geolokalisering med GeoIP2

Objektet [`GeoIP2`](#django.contrib.gis.geoip2.GeoIP2) är ett omslag för [MaxMind geoip2 Python-biblioteket](https://pypi.org/project/geoip2/). [^1]

För att utföra IP-baserad geolokalisering kräver objektet [`GeoIP2`](#django.contrib.gis.geoip2.GeoIP2) Python-paketet [geoip2](https://pypi.org/project/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](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) eller [DB-IP](https://db-ip.com/db/lite.php). 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`](#std-setting-GEOIP_PATH).

Dessutom rekommenderas det att installera C-biblioteket [libmaxminddb](https://github.com/maxmind/libmaxminddb/), så att `geoip2` kan utnyttja C-bibliotekets snabbare hastighet.

## Exempel

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

```pycon
>>> 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`](#std-setting-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`](#std-setting-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`](#std-setting-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`](#std-setting-GEOIP_CITY). |

## Metoder

### Instansiering

#### `classmethod GeoIP2.open(path, cache)`

Denna klassmetod instansierar GeoIP-objektet från den angivna databassökvägen och den angivna cacheminställningen.

> **Deprecated since Django 5.1**
>
> Ersatt sedan version 5.1: Använd istället [`GeoIP2()`](#django.contrib.gis.geoip2.GeoIP2)-konstruktören.

### Frågeställning

Alla följande frågerutiner kan ta en instans av [`IPv4Address`](https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Address) eller [`IPv6Address`](https://docs.python.org/3/library/ipaddress.html#ipaddress.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.coords(query)`

Returnerar en koordinattupel av (longitud, latitud).

> **Deprecated since Django 5.1**
>
> Ersatt sedan version 5.1: Använd [`GeoIP2.lon_lat()`](#django.contrib.gis.geoip2.GeoIP2.lon_lat) istället.

#### `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`](/sv/5.2/ref/contrib/gis/geos/#django.contrib.gis.geos.Point)-objekt som motsvarar frågan.

## Inställningar

### `GEOIP_PATH`

En sträng eller [`pathlib.Path`](https://docs.python.org/3/library/pathlib.html#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`](#django.contrib.gis.geoip2.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`](#django.contrib.gis.geoip2.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.
