Documentation API

Accédez aux données de géolocalisation IP et ASN via notre API REST gratuite.

Authentification requise

Toutes les requêtes API nécessitent une clé API valide.

Via en-tête Authorization (recommandé)

Authorization: Bearer YOUR_API_KEY

Via paramètre de requête

https://ipmeu.ro/api/lookup?key=YOUR_API_KEY&ip=8.8.8.8

Créez un compte gratuit pour obtenir votre clé API: Créer un compte

URL de base

https://ipmeu.ro/api

Tous les points de terminaison sont relatifs à cette URL de base. HTTPS est requis.

GET /api/lookup

Rechercher des informations de géolocalisation pour toute adresse IP.

Paramètres

Paramètre Type Requis Description
key string Requis Votre clé API.
ip string Optionnel Adresse IP à rechercher.

Exemple de requête

curl -H "Authorization: Bearer YOUR_API_KEY" \
     "https://ipmeu.ro/api/lookup?ip=8.8.8.8"

Exemple de réponse

{
  "status": "success",
  "data": {
    "ip":       "8.8.8.8",
    "version":  4,
    "hostname": "dns.google",

    "geo": {
      "country":        "United States",
      "country_code":   "US",
      "region":         "California",
      "region_code":    "CA",
      "city":           "Mountain View",
      "postal_code":    "94043",
      "latitude":       37.386,
      "longitude":      -122.0838,
      "timezone":       "America/Los_Angeles",
      "continent":      "North America",
      "continent_code": "NA"
    },

    "asn": {
      "number":       15169,
      "name":         "Google LLC",
      "description":  "Google LLC - AS15169",
      "country":      "United States",
      "country_code": "US",
      "registry":     "ARIN",
      "allocated":    "2000-03-30",
      "total_ips":    16777216
    },

    "whois": {
      "net_range":    "8.8.8.0/24",
      "net_name":     "GOGL",
      "org_name":     "Google LLC",
      "org_id":       "GOGL",
      "country":      "US",
      "abuse_email":  "network-abuse@google.com",
      "registered":   "2000-03-30",
      "updated":      "2014-12-01"
    },

    "security": {
      "vpn":           false,
      "proxy":         false,
      "tor":           false,
      "threat_score":  0
    }
  }
}

Champs de réponse

Tous les champs et leurs types renvoyés par l'API.

ip string L'adresse IP interrogée (IPv4 ou IPv6).
version integer Version IP : 4 pour IPv4, 6 pour IPv6.
hostname string Nom d'hôte DNS inversé. Chaîne vide si aucun enregistrement PTR n'existe.

geo object

country string Nom complet du pays.
country_code string Code pays ISO 3166-1 alpha-2 (ex. "US", "RO").
region string Nom de la région ou de l'état.
region_code string Code de région ISO (ex. "CA", "AB").
city string Nom de la ville.
postal_code string Code postal.
latitude float Coordonnée de latitude (approximative).
longitude float Coordonnée de longitude (approximative).
timezone string Identifiant de fuseau horaire IANA (ex. "America/Los_Angeles").
continent string Nom du continent.
continent_code string Code de continent à deux lettres (ex. "EU", "NA").

asn object

number integer Numéro de système autonome (entier).
name string Nom de l'organisation ASN.
description string Chaîne de description complète de l'ASN.
country string|null Pays où l'ASN est enregistré. null si inconnu.
country_code string|null Code pays ISO de l'ASN. null si inconnu.
registry string|null Registre Internet régional : ARIN, RIPE NCC, APNIC, LACNIC ou AFRINIC. null si inconnu.
allocated string|null Date de la première allocation du bloc réseau (AAAA-MM-JJ). Dérivé du WHOIS si disponible. null si inconnu.
total_ips integer|null Nombre total d'adresses IP dans le bloc réseau. Calculé à partir du préfixe CIDR. null si inconnu.

whois object

net_range string|null Plage réseau ou bloc CIDR (ex. "8.8.8.0/24" ou "2a04::/32").
net_name string|null Nom court du réseau tel qu'enregistré dans la base de données RIR.
org_name string|null Nom complet de l'organisation propriétaire du réseau.
org_id string|null ID d'organisation ou identifiant dans la base de données RIR.
country string|null Code pays ISO de l'enregistrement WHOIS.
abuse_email string|null Adresse e-mail de contact abus. Utilisez-la pour signaler les abus réseau.
registered string|null Date d'enregistrement du réseau (format ISO 8601).
updated string|null Date de la dernière mise à jour de l'enregistrement WHOIS.

security object

vpn boolean true si l'IP est associée à un fournisseur VPN ou réseau d'hébergement connu.
proxy boolean true si l'IP est détectée comme un proxy ouvert.
tor boolean true si l'IP est un nœud de sortie Tor connu (IPv4 uniquement).
threat_score integer Score de menace de 0 (propre) à 100 (risque élevé). Combine les signaux VPN, proxy et Tor.

Codes de statut HTTP

200 OK Requête réussie. Les données se trouvent dans le corps de la réponse.
400 Bad Request Format d'adresse IP invalide fourni.
401 Unauthorized Clé API requise
403 Forbidden Clé API invalide
404 Not Found L'adresse IP n'a pas pu être résolue.
429 Too Many Requests Limite quotidienne dépassée
500 Internal Server Error Erreur interne du serveur. Veuillez réessayer plus tard.

Format de réponse d'erreur

{
  "status": "error",
  "error":  "API key is required."
}

Limites de débit

L'API gratuite est limitée en débit pour un usage équitable.

30
requêtes / minute
1,000
requêtes / jour
Niveau gratuit
Inscrivez-vous pour une clé API gratuite

Les limites se réinitialisent à minuit UTC. Dépasser la limite renvoie HTTP 429.

Exemples de code

$ cURL

curl -s -H "Authorization: Bearer YOUR_API_KEY" \
     "https://ipmeu.ro/api/lookup?ip=8.8.8.8" | python3 -m json.tool

P PHP

$response = file_get_contents('https://ipmeu.ro/api/lookup?ip=8.8.8.8&key=YOUR_API_KEY');
$data     = json_decode($response, true);

echo $data['data']['geo']['country'];   // "United States"
echo $data['data']['asn']['name'];      // "Google LLC"
echo $data['data']['security']['vpn'];   // false

Py Python

import requests

resp = requests.get(
    "https://ipmeu.ro/api/lookup",
    params={"ip": "8.8.8.8"},
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = resp.json()["data"]

print(data["geo"]["country"])     # United States
print(data["asn"]["registry"])   # ARIN
print(data["whois"]["abuse_email"]) # network-abuse@google.com

JS JavaScript (fetch)

const res  = await fetch(
  "https://ipmeu.ro/api/lookup?ip=8.8.8.8",
  { headers: { "Authorization": "Bearer YOUR_API_KEY" } }
);
const { data } = await res.json();

console.log(data.geo.country);          // "United States"
console.log(data.asn.registry);         // "ARIN"
console.log(data.whois.abuse_email);    // "network-abuse@google.com"
console.log(data.security.threat_score); // 0