La base de données de géolocalisation IP associe des intervalles IP continus (ip_from ~ ip_to)
à un pays/région, une division administrative, une ville et des coordonnées (lat./long.).
Elle s’emploie pour la répartition géographique du trafic, la conformité et gestion des risques,
l’orchestration de proximité et l’analyse opérationnelle.
Les données sont exportées en deux ensembles indépendants — IPv6 et IPv4 — avec des champs et des formats de fichiers identiques.
Schéma des données (description des colonnes)
ip_from VARCHAR(39) NOT NULL: IP de début (compatible IPv4/IPv6).ip_to VARCHAR(39) NOT NULL: IP de fin (compatible IPv4/IPv6).country_code CHAR(2): code ISO 3166-1 Alpha-2 (p. ex.US,CN).region VARCHAR(100): province/État/premier niveau administratif.city VARCHAR(100): nom de la ville.latitude DECIMAL(9,5): latitude.longitude DECIMAL(9,5): longitude.
SQL de création (exemple MySQL)
CREATE TABLE geoip_ranges (
ip_from VARCHAR(39) NOT NULL,
ip_to VARCHAR(39) NOT NULL,
country_code CHAR(2),
region VARCHAR(100),
city VARCHAR(100),
latitude DECIMAL(9,5),
longitude DECIMAL(9,5),
PRIMARY KEY (ip_from, ip_to)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Téléchargement en ligne
Chaque pile (IPv6 / IPv4) est disponible en trois formats : JSON (.gz), CSV (.gz), SQL (.gz).
| Source | Type | Format | Téléchargement | Description |
|---|---|---|---|---|
| IPIN | IPv6 | JSON (.gz) | Télécharger | Intervalle IPv6 → informations géographiques (tableau JSON). |
| IPIN | IPv6 | CSV (.gz) | Télécharger | CSV standard avec en-tête, pratique pour ETL/tableurs. |
| IPIN | IPv6 | SQL (.gz) | Télécharger | Inclut la création de table et des INSERT en lot ; import direct MySQL. |
| IPIN | IPv4 | JSON (.gz) | Télécharger | Intervalle IPv4 → informations géographiques (tableau JSON). |
| IPIN | IPv4 | CSV (.gz) | Télécharger | CSV standard avec en-tête, pratique pour ETL/tableurs. |
| IPIN | IPv4 | SQL (.gz) | Télécharger | Inclut la création de table et des INSERT en lot ; import direct MySQL. |
Remarque : tous les téléchargements sont des archives .gz. Décompressez avec gunzip ou traitez le flux directement dans votre application.
Téléchargement rapide en ligne de commande
curl
# IPv6
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'
# IPv4
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
curl -fL -OJ 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'
wget
# Utiliser automatiquement le nom de fichier du serveur (--content-disposition)
# IPv6
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'
# IPv4
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
wget --content-disposition 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'
# Nom de fichier personnalisé + reprise
wget -c -O ipv6_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
wget -c -O ipv6_ip_location.csv.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
wget -c -O ipv6_ip_location.sql.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'
wget -c -O ipv4_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
wget -c -O ipv4_ip_location.csv.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
wget -c -O ipv4_ip_location.sql.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'
aria2c (multi-flux)
# IPv6
aria2c -x16 -s16 -k1M -o ipv6_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz'
aria2c -x16 -s16 -k1M -o ipv6_ip_location.csv.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz'
aria2c -x16 -s16 -k1M -o ipv6_ip_location.sql.gz 'https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz'
# IPv4
aria2c -x16 -s16 -k1M -o ipv4_ip_location.json.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz'
aria2c -x16 -s16 -k1M -o ipv4_ip_location.csv.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz'
aria2c -x16 -s16 -k1M -o ipv4_ip_location.sql.gz 'https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz'
PowerShell
# IPv6
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.json.gz" -OutFile "ipv6_ip_location.json.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.csv.gz" -OutFile "ipv6_ip_location.csv.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv6_ip_location.sql.gz" -OutFile "ipv6_ip_location.sql.gz"
# IPv4
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.json.gz" -OutFile "ipv4_ip_location.json.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.csv.gz" -OutFile "ipv4_ip_location.csv.gz"
Invoke-WebRequest -Uri "https://ipin.io/exports/20251028_204109/ipv4_ip_location.sql.gz" -OutFile "ipv4_ip_location.sql.gz"
Astuce : les fichiers obtenus sont des archives .gz. Utilisez gunzip ou un outil d’extraction, ou lisez-les directement en flux dans votre programme.
Description des formats
JSON
Tableau ; chaque élément contient ip_from, ip_to, country_code, region, city, latitude, longitude.
[
{
"ip_from": "2400:cb00::",
"ip_to": "2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff",
"country_code": "US",
"region": "California",
"city": "Los Angeles",
"latitude": 34.05460,
"longitude": -118.24400
}
]
CSV
Première ligne : en-tête ; les champs contenant des virgules/guillemets sont échappés selon la RFC 4180.
ip_from,ip_to,country_code,region,city,latitude,longitude
1.0.0.0,1.0.0.255,AU,Queensland,South Brisbane,-27.47480,153.01700
SQL
Inclut la création de table et des INSERT en lot, pour un import direct dans MySQL.
-- Voir la définition de table ci-dessus
INSERT INTO geoip_ranges
(ip_from, ip_to, country_code, region, city, latitude, longitude) VALUES
('1.0.0.0','1.0.0.255','AU','Queensland','South Brisbane',-27.47480,153.01700);
Guide d’utilisation (prise en main)
- Sélectionnez et téléchargez, selon le besoin, les fichiers IPv6 ou IPv4 en JSON / CSV / SQL.
- Décompressez et importez dans votre base (ou parsez directement dans l’application).
- Appliquez des stratégies de répartition et de conformité par pays/région/ville ou coordonnées ; vous pouvez utiliser la distance pour une orchestration de proximité (granularité grossière).
- Mettez en place des tâches planifiées (quotidiennes/hebdomadaires) pour des mises à jour par écrasement et garder la base à jour.
Informations complémentaires
- IPv6 et IPv4 partagent la même définition de colonnes ; seul l’espace d’adresses couvert diffère.
- Les coordonnées et divisions administratives permettent une localisation approximative, sans constituer une adresse précise ; respectez les exigences de confidentialité et de conformité.
- Pour des requêtes hautes performances, convertissez IPv4 en intervalles d’entiers 32 bits ; pour IPv6, utilisez des tries de préfixes/arbres d’intervalles ou des index spécialisés.