Recherche IPv4
Localisation, fuseau horaire et informations réseau pour une adresse IPv4. Omettez l'adresse pour rechercher celle de l'appelant.
Paramètres
| Paramètre | Type | Description |
|---|---|---|
ipfacultatif | chaîne | Adresse IPv4 en notation décimale pointée. Par défaut : l'adresse d'où provient la requête. |
ipsfacultatif | chaîne | Adresses séparées par des virgules, jusqu'à 100, pour un lot. Renvoie un tableau results dans le même ordre. Chaque adresse compte comme une requête. |
langfacultatif | chaîne | Code ISO 639-1 pour les noms de pays, de région et de ville. Par défaut en. |
keyfacultatif | chaîne | Clé d'API, si elle n'est pas envoyée dans un en-tête. |
Exemple
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/ipv4?ip=1.1.1.1"// In a browser, with no ip parameter, this returns the visitor's own address
const geo = await (await fetch("https://api.mygeocode.com/v1/ipv4", { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(geo.country_code, geo.timezone);import requests
geo = requests.get("https://api.mygeocode.com/v1/ipv4", params={"ip": "1.1.1.1"}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5).json()
print(geo["country_code"], geo["org"], geo["is_datacenter"]){
"status": "ok",
"ip": "1.0.164.165",
"version": 4,
"found": true,
"prefix": "1.0.164.0/24",
"country": "Thailand",
"country_code": "TH",
"continent": "Asia",
"continent_code": "AS",
"region": "Krung Thep Maha Nakhon",
"region_code": null,
"city": "Bangkok",
"postcode": "10200",
"lat": 13.749976,
"lon": 100.516819,
"timezone": "Asia/Bangkok",
"utc_offset": "+07:00",
"utc_offset_seconds": 25200,
"is_eu": false,
"asn": 23969,
"as_name": "TOT Public Company Limited",
"org": "TOT Public Company Limited",
"usage_type": "Eyeball",
"registry": "apnic",
"allocated": "2008-10-22",
"tags": ["dsl"],
"is_anycast": false,
"is_satellite": false,
"is_datacenter": false,
"is_proxy": false,
"is_vpn_provider": false,
"is_tor": false,
"is_private": false,
"abuse_email": "abuse@totisp.net",
"threat": {
"listed": true,
"score": 90,
"source_count": 2,
"categories": ["abuse", "attacker"],
"is_tor": false,
"is_tor_exit": false,
"is_bogon": false,
"listings": [
{ "category": "abuse", "confidence": 100, "recency_days": 1 },
{ "category": "attacker", "confidence": null, "recency_days": null }
]
},
"updated_at": "2026-09-18 06:53:39"
}Champs de la réponse
| Champ | Type | Description |
|---|---|---|
ip, version | chaîne, entier | L'adresse recherchée, sous forme canonique, et 4 ou 6. |
found | booléen | Faux lorsqu'aucun réseau ne couvre l'adresse ; les champs de localisation sont alors null. |
prefix | chaîne | Le réseau le plus spécifique contenant l'adresse, en notation CIDR. |
country, country_code | chaîne | Nom du pays et code ISO 3166-1 alpha-2 en majuscules. |
continent, continent_code | chaîne | Nom du continent et code à deux lettres. |
region, region_code | chaîne | Division de premier niveau et son code court. Le code est renseigné pour les États-Unis, le Canada et l'Australie ; ailleurs, il n'est présent que lorsque le jeu de données en contient un. |
city, postcode | chaîne | Meilleure estimation ; null si inconnu. |
lat, lon | nombre | Centre de la zone connue la plus précise. |
elevation_m | nombre ou null | Hauteur au-dessus du niveau moyen de la mer en ce point, en mètres, issue de la même grille de 15 secondes d'arc que l'endpoint d'altitude. Négative au-dessus des fonds marins. |
timezone, utc_offset, utc_offset_seconds | chaîne, chaîne, nombre | Zone IANA, décalage en vigueur en ce moment au format +HH:MM, et ce même décalage en secondes. La zone est déterminée par les coordonnées et les limites des fuseaux horaires, elle concorde donc toujours avec lat et lon. |
is_eu | booléen | Le pays fait partie de l'Union européenne. |
asn, as_name, org | entier, chaîne | Numéro de système autonome, son nom et l'organisation qui en est responsable. |
usage_type | chaîne | La nature de l'opérateur : Eyeball (FAI grand public), Carrier, Content, Hosting, Enterprise, Education, NSP ou unknown. |
registry, allocated | chaîne | Registre régional qui a attribué l'ASN, et date d'attribution. |
tags | tableau | Étiquettes au niveau de l'opérateur, comme dsl, cdn, vpsh (hébergement VPS), vpn, satnet. Elles décrivent l'opérateur réseau, pas l'adresse individuelle. |
is_anycast, is_satellite | booléen | Le préfixe est anycast ; l'opérateur est un réseau satellitaire. |
is_datacenter | booléen | Réseau d'hébergement ou de contenu. Considérez la ville comme peu fiable et envisagez que le trafic puisse être automatisé. |
is_proxy, is_tor | booléen | Indice propre à l'adresse indiquant qu'il s'agit d'un relais ou d'un nœud de sortie Tor, ou qu'elle est répertoriée comme proxy ou point de terminaison VPN. |
is_vpn_provider | booléen | L'opérateur exploite des services VPN ou proxy quelque part dans son réseau (un indice au niveau de l'opérateur, plus faible que is_proxy). |
is_private | booléen | Adresse réservée, privée ou autrement non routable. Lorsque ce champ vaut true, la réponse ne contient que ip, version, is_private et reason. |
abuse_email | chaîne | Contact abus enregistré pour le réseau. |
threat | objet | Réputation : listed, un score de 0 à 100 (le poids du pire signalement, minoré pour les signalements anciens), source_count (le nombre de signalements indépendants qui la répertorient), categories, les indicateurs Tor et bogon, et les listings individuels avec la catégorie, la confiance et le nombre de jours écoulés depuis chaque signalement. |
updated_at | chaîne | Date de la dernière mise à jour de l'enregistrement de ce réseau. |
Les deux versions en un seul appel
GET /v1/ip accepte une adresse IPv4 ou IPv6 (ou aucune, pour l'appelant) et renvoie le même enregistrement que les endpoints propres à chaque version. Utilisez-le lorsque vous ne savez pas à l'avance quel type d'adresse vous recevrez.
Remarques
- Les adresses anycast comme
1.1.1.1et8.8.8.8sont servies depuis de nombreux endroits à la fois. La localisation renvoyée est celle qui est enregistrée, c'est pourquoiis_datacentervaut true pour elles. - Appelez-le depuis votre serveur avec l'adresse du visiteur dans
ip. Un appel sansiprenvoie l'adresse d'où provient la requête, qui, derrière un proxy ou un CDN, est celle du proxy. - Les données IP sont mises à jour chaque semaine. Une durée de cache d'une journée est raisonnable.
La même recherche aux formats d'autres fournisseurs
Si vous avez déjà du code écrit pour l'un de ces fournisseurs, gardez-le : l'hôte compatible accepte le même chemin et les mêmes paramètres et répond dans le format de réponse de ce fournisseur, avec cet endpoint derrière. Voir le fonctionnement des hôtes compatibles.
| Fournisseur | Hôte | Chemin |
|---|---|---|
| Geoapify | geoapify.mygeocode.com | /v1/ipinfo?ip=... |
| ip-api.com | ipapi.mygeocode.com | /json/{ip}/json//batch (POST, JSON array) |
| ipinfo.io | ipinfo.mygeocode.com | /{ip}/json/{ip}/json/{ip}/{field} |
| ipstack | ipstack.mygeocode.com | /{ip}/check/{ip},{ip},{ip} |
Erreurs
400 invalid_request lorsque ip n'est pas une adresse IPv4 valide, lorsqu'une adresse IPv6 est envoyée à cet endpoint (utilisez /v1/ipv6), ou lorsque ips contient plus de 100 entrées.