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}`);
});