Documentation de l'API MC27-IP

L'API MC27-IP permet de récupérer les informations de géolocalisation et de réseau associées à une adresse IP.

Point d'accès

GET /api/v1/ip
GET /api/v1/ip?ip=203.0.113.42
GET /api/v1/ip?ip=203.0.113.42&lang=fr

Paramètres

Paramètres Exemple Codes de réponse
ip (optional) 203.0.113.42 Adresse IPv4 ou IPv6 à rechercher. Si omis, l'IP du visiteur est utilisée.
lang (optional) fr, de, en Code langue ISO 639-1 pour les noms localisés (24 langues supportées).

Codes de réponse

Codes de réponse Exemple
200 Succès — données de géolocalisation retournées.
400 Adresse IP invalide.
404 IP non géolocalisable.
429 Limite de débit dépassée (60 requêtes/minute).
503 Base de données indisponible.

Limite de débit

60 requêtes par minute par adresse IP. Les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et Retry-After sont inclus dans chaque réponse.

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
Retry-After: 30

CORS

L'API accepte les requêtes cross-origin (Access-Control-Allow-Origin: *).

Exemple — JSON

{
  "ip": "203.0.113.42",
  "version": 4,
  "geo": {
    "country": {
      "iso": "FR",
      "name": "France"
    },
    "city": "Paris",
    "postal": "75001",
    "latitude": 48.8566,
    "longitude": 2.3522,
    "accuracy_radius_km": 10,
    "timezone": "Europe/Paris"
  },
  "network": {
    "asn": 16276,
    "organization": "OVH SAS"
  },
  "attribution": "GeoLite2 by MaxMind (CC BY-SA 4.0)"
}

curl Exemple

curl -H "Accept: application/json" https://mc27-ip.example.com/api/v1/ip

curl -H "Accept: application/json" \
  "https://mc27-ip.example.com/api/v1/ip?ip=203.0.113.42"

curl -H "Accept: application/json" \
  "https://mc27-ip.example.com/api/v1/ip?ip=203.0.113.42&lang=de"

JavaScript / Fetch Exemple

fetch('https://mc27-ip.example.com/api/v1/ip')
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));

fetch('https://mc27-ip.example.com/api/v1/ip?ip=203.0.113.42&lang=fr')
  .then(res => res.json())
  .then(data => {
    console.log(`IP: ${data.ip}`);
    console.log(`Pays: ${data.geo.country.name}`);
    console.log(`Opérateur: ${data.network.organization}`);
  });